diff mbox series

power: supply: core: Initialize struct to zero

Message ID 20220424221301.1274428-1-linus.walleij@linaro.org
State Accepted
Commit e56a4be2843c95c08cf8421dc1f8e880cafbaf91
Headers show
Series power: supply: core: Initialize struct to zero | expand

Commit Message

Linus Walleij April 24, 2022, 10:13 p.m. UTC
As we rely on pointers in the battery info to be zero-initialized
such as in the helper function power_supply_supports_vbat2ri()
we certainly need to allocate the struct power_supply_battery_info
with kzalloc() as well. Else this happens:

Unable to handle kernel paging request at virtual address 00280000
(...)
PC is at power_supply_vbat2ri+0x50/0x12c
LR is at ab8500_fg_battery_resistance+0x34/0x108

Fixes: e9e7d165b4b0 ("power: supply: Support VBAT-to-Ri lookup tables")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/power/supply/power_supply_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sebastian Reichel May 3, 2022, 3:36 p.m. UTC | #1
Hi,

On Mon, Apr 25, 2022 at 12:13:01AM +0200, Linus Walleij wrote:
> As we rely on pointers in the battery info to be zero-initialized
> such as in the helper function power_supply_supports_vbat2ri()
> we certainly need to allocate the struct power_supply_battery_info
> with kzalloc() as well. Else this happens:
> 
> Unable to handle kernel paging request at virtual address 00280000
> (...)
> PC is at power_supply_vbat2ri+0x50/0x12c
> LR is at ab8500_fg_battery_resistance+0x34/0x108
> 
> Fixes: e9e7d165b4b0 ("power: supply: Support VBAT-to-Ri lookup tables")
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---

Thanks, queued to fixes branch.

-- Sebastian

>  drivers/power/supply/power_supply_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
> index d925cb137e12..fad5890c899e 100644
> --- a/drivers/power/supply/power_supply_core.c
> +++ b/drivers/power/supply/power_supply_core.c
> @@ -616,7 +616,7 @@ int power_supply_get_battery_info(struct power_supply *psy,
>  		goto out_put_node;
>  	}
>  
> -	info = devm_kmalloc(&psy->dev, sizeof(*info), GFP_KERNEL);
> +	info = devm_kzalloc(&psy->dev, sizeof(*info), GFP_KERNEL);
>  	if (!info) {
>  		err = -ENOMEM;
>  		goto out_put_node;
> -- 
> 2.35.1
>
diff mbox series

Patch

diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index d925cb137e12..fad5890c899e 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -616,7 +616,7 @@  int power_supply_get_battery_info(struct power_supply *psy,
 		goto out_put_node;
 	}
 
-	info = devm_kmalloc(&psy->dev, sizeof(*info), GFP_KERNEL);
+	info = devm_kzalloc(&psy->dev, sizeof(*info), GFP_KERNEL);
 	if (!info) {
 		err = -ENOMEM;
 		goto out_put_node;