From: Wolfram Sang wsa+renesas@sang-engineering.com
[ Upstream commit 3b661ca549b9e5bb11d0bc97ada6110aac3282d2 ]
LKP found a random config which failed to build because IO accessors were not defined:
In file included from drivers/i3c/master.c:21: drivers/i3c/internals.h: In function 'i3c_writel_fifo':
drivers/i3c/internals.h:35:9: error: implicit declaration of function 'writesl' [-Werror=implicit-function-declaration]
Add the proper header to where the IO accessors are used.
Reported-by: kernel test robot lkp@intel.com Closes: https://lore.kernel.org/oe-kbuild-all/202507150208.BZDzzJ5E-lkp@intel.com/ Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Reviewed-by: Frank Li Frank.Li@nxp.com Link: https://lore.kernel.org/r/20250717120046.9022-2-wsa+renesas@sang-engineering... Signed-off-by: Alexandre Belloni alexandre.belloni@bootlin.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
**Backport Status: YES**
This commit should be backported to stable kernel trees for the following reasons:
1. **Fixes a real build failure**: The commit fixes an actual compilation error where `writesl` function is used without including the proper header (`<linux/io.h>`). This is a concrete build regression that prevents kernel compilation in certain configurations.
2. **Minimal and safe change**: The fix is extremely simple - it only adds a single `#include <linux/io.h>` line to the internals.h header file. This is a one-line change with virtually no risk of introducing regressions.
3. **Detected by kernel test robot**: The issue was found by the Linux Kernel Test Robot (LKP), indicating it affects real-world build configurations that are tested regularly. The error message shows: ``` drivers/i3c/internals.h:35:9: error: implicit declaration of function 'writesl' ```
4. **Affects core I3C infrastructure**: The internals.h header is included by core I3C files (master.c and device.c), so a build failure here can prevent the entire I3C subsystem from compiling.
5. **Recent regression**: Looking at the git history, the `i3c_writel_fifo()` and `i3c_readl_fifo()` functions were recently added in commit 733b439375b4, and are already being used by I3C controller drivers (dw-i3c-master.c and cdns-i3c-master.c as shown in commits 6e055b1fb2fc and c20d3fa70491). This missing include is a regression that breaks builds after these recent changes.
6. **Clear stable backport criteria**: This meets the stable kernel rules perfectly: - It fixes a real bug (build failure) - It's obviously correct (missing include for used functions) - It's a minimal change (1 line) - No new features or architectural changes - Zero risk of functional regression
The commit is a textbook example of what should be backported to stable trees - a simple, obvious fix for a build regression with no side effects.
drivers/i3c/internals.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/i3c/internals.h b/drivers/i3c/internals.h index 433f6088b7ce..ce04aa4f269e 100644 --- a/drivers/i3c/internals.h +++ b/drivers/i3c/internals.h @@ -9,6 +9,7 @@ #define I3C_INTERNALS_H
#include <linux/i3c/master.h> +#include <linux/io.h>
void i3c_bus_normaluse_lock(struct i3c_bus *bus); void i3c_bus_normaluse_unlock(struct i3c_bus *bus);