[PATCH] clk: pxa: fix NULL pointer dereference in pxa3xx_clk_update_accr

Arnd Bergmann posted 1 patch 2 years, 9 months ago
drivers/clk/pxa/clk-pxa3xx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] clk: pxa: fix NULL pointer dereference in pxa3xx_clk_update_accr
Posted by Arnd Bergmann 2 years, 9 months ago
From: Arnd Bergmann <arnd@arndb.de>

sparse points out an embarrasing bug in an older patch of mine,
which uses the register offset instead of an __iomem pointer:

drivers/clk/pxa/clk-pxa3xx.c:167:9: sparse: sparse: Using plain integer as NULL pointer

Unlike sparse, gcc and clang ignore this bug and fail to warn
because a literal '0' is considered a valid representation of
a NULL pointer.

Fixes: 3c816d950a49 ("ARM: pxa: move clk register definitions to driver")
Cc: stable@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/oe-kbuild-all/202305111301.RAHohdob-lkp@intel.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/clk/pxa/clk-pxa3xx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/pxa/clk-pxa3xx.c b/drivers/clk/pxa/clk-pxa3xx.c
index 42958a542662..621e298f101a 100644
--- a/drivers/clk/pxa/clk-pxa3xx.c
+++ b/drivers/clk/pxa/clk-pxa3xx.c
@@ -164,7 +164,7 @@ void pxa3xx_clk_update_accr(u32 disable, u32 enable, u32 xclkcfg, u32 mask)
 	accr &= ~disable;
 	accr |= enable;
 
-	writel(accr, ACCR);
+	writel(accr, clk_regs + ACCR);
 	if (xclkcfg)
 		__asm__("mcr p14, 0, %0, c6, c0, 0\n" : : "r"(xclkcfg));
 
-- 
2.39.2
Re: [PATCH] clk: pxa: fix NULL pointer dereference in pxa3xx_clk_update_accr
Posted by Stephen Boyd 2 years, 8 months ago
Quoting Arnd Bergmann (2023-05-11 03:58:33)
> From: Arnd Bergmann <arnd@arndb.de>
> 
> sparse points out an embarrasing bug in an older patch of mine,
> which uses the register offset instead of an __iomem pointer:
> 
> drivers/clk/pxa/clk-pxa3xx.c:167:9: sparse: sparse: Using plain integer as NULL pointer
> 
> Unlike sparse, gcc and clang ignore this bug and fail to warn
> because a literal '0' is considered a valid representation of
> a NULL pointer.
> 
> Fixes: 3c816d950a49 ("ARM: pxa: move clk register definitions to driver")
> Cc: stable@vger.kernel.org
> Reported-by: kernel test robot <lkp@intel.com>
> Link: https://lore.kernel.org/oe-kbuild-all/202305111301.RAHohdob-lkp@intel.com/
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Applied to clk-fixes