[PATCH v2 02/10] power: supply: cw2015: Free allocated workqueue
Krzysztof Kozlowski
krzysztof.kozlowski at oss.qualcomm.com
Thu Mar 5 13:45:41 PST 2026
Use devm interface so allocated workqueue will be freed during device
removal and error paths, thus fixing a memory leak.
Change is not equivalent in the workqueue itself: use non-legacy API
which does not set (__WQ_LEGACY | WQ_MEM_RECLAIM). The workqueue is
used to read updated data from the battery, thus there is no point to
run it for memory reclaim.
Cc: <stable at vger.kernel.org>
Fixes: b4c7715c10c1 ("power: supply: add CellWise cw2015 fuel gauge driver")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
---
Depends on devm_xxx() from earlier patches.
Changes in v2:
1. Use devm_alloc_ordered_workqueue(), mention this in commit msg
---
drivers/power/supply/cw2015_battery.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/power/supply/cw2015_battery.c b/drivers/power/supply/cw2015_battery.c
index a05dcc4a48f2..286524d2318c 100644
--- a/drivers/power/supply/cw2015_battery.c
+++ b/drivers/power/supply/cw2015_battery.c
@@ -694,7 +694,8 @@ static int cw_bat_probe(struct i2c_client *client)
"No monitored battery, some properties will be missing\n");
}
- cw_bat->battery_workqueue = create_singlethread_workqueue("rk_battery");
+ cw_bat->battery_workqueue = devm_alloc_ordered_workqueue(&client->dev,
+ "rk_battery", 0);
if (!cw_bat->battery_workqueue)
return -ENOMEM;
--
2.51.0
More information about the Linux-mediatek
mailing list