Commit 92ec7e7b authored by Ivan Abramov's avatar Ivan Abramov Committed by Sebastian Reichel
Browse files

power: supply: cw2015: Check devm_delayed_work_autocancel() return code



Since devm_delayed_work_autocancel() may fail, add return code check and
exit cw_bat_probe() on error.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 0cb172a4 ("power: supply: cw2015: Use device managed API to simplify the code")
Signed-off-by: default avatarIvan Abramov <i.abramov@mt-integration.ru>
Link: https://patch.msgid.link/20251008120711.556021-1-i.abramov@mt-integration.ru


Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent 6cdc4d48
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -699,7 +699,13 @@ static int cw_bat_probe(struct i2c_client *client)
	if (!cw_bat->battery_workqueue)
		return -ENOMEM;

	devm_delayed_work_autocancel(&client->dev, &cw_bat->battery_delay_work, cw_bat_work);
	ret = devm_delayed_work_autocancel(&client->dev, &cw_bat->battery_delay_work, cw_bat_work);
	if (ret) {
		dev_err_probe(&client->dev, ret,
			"Failed to register delayed work\n");
		return ret;
	}

	queue_delayed_work(cw_bat->battery_workqueue,
			   &cw_bat->battery_delay_work, msecs_to_jiffies(10));
	return 0;