summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>2026-03-05 22:45:41 +0100
committerSebastian Reichel <sebastian.reichel@collabora.com>2026-03-11 06:58:00 +0100
commitdb254b0b232358ab1aeadebe8d147c99a3569559 (patch)
tree87ccac0864860262771962bcce1a646f39a4d534
parent9bd4059660d06d34fde37d8d33d2a50a0b563431 (diff)
power: supply: cw2015: Free allocated workqueue
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@vger.kernel.org Fixes: b4c7715c10c1 ("power: supply: add CellWise cw2015 fuel gauge driver") Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260305-workqueue-devm-v2-2-66a38741c652@oss.qualcomm.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
-rw-r--r--drivers/power/supply/cw2015_battery.c3
1 files changed, 2 insertions, 1 deletions
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;