Message ID | 20250609-must_check-devm_mutex_init-v6-2-9540d5df9704@weissschuh.net |
---|---|
State | New |
Headers | show |
Series | [v6,1/3] spi: spi-nxp-fspi: check return value of devm_mutex_init() | expand |
On 6/9/25 3:38 PM, Thomas Weißschuh wrote: > Even if it's not critical, the avoidance of checking the error code > from devm_mutex_init() call today diminishes the point of using devm > variant of it. Tomorrow it may even leak something. > > Add the missed check. > > Fixes: 87a59548af95 ("leds: lp8860: Use new mutex guards to cleanup function exits") > Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> > --- > drivers/leds/leds-lp8860.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/leds/leds-lp8860.c b/drivers/leds/leds-lp8860.c > index 52b97c9f2a03567aa12d4f63a951593a5e7017d5..0962c00c215a11f555a7878a3b65824b5219a1fa 100644 > --- a/drivers/leds/leds-lp8860.c > +++ b/drivers/leds/leds-lp8860.c > @@ -307,7 +307,9 @@ static int lp8860_probe(struct i2c_client *client) > led->client = client; > led->led_dev.brightness_set_blocking = lp8860_brightness_set; > > - devm_mutex_init(&client->dev, &led->lock); > + ret = devm_mutex_init(&client->dev, &led->lock); > + if (ret) > + return dev_err_probe(&client->dev, ret, "Failed to initialize lock\n"); I don't think the lock initialization can actually fail, if anything ever breaks it will be the devm allocation, which is a ENOMEM situation, so probably not worth printing anything. Either way is fine for __must_check sake so, Acked-by: Andrew Davis <afd@ti.com> > > led->regmap = devm_regmap_init_i2c(client, &lp8860_regmap_config); > if (IS_ERR(led->regmap)) { >
diff --git a/drivers/leds/leds-lp8860.c b/drivers/leds/leds-lp8860.c index 52b97c9f2a03567aa12d4f63a951593a5e7017d5..0962c00c215a11f555a7878a3b65824b5219a1fa 100644 --- a/drivers/leds/leds-lp8860.c +++ b/drivers/leds/leds-lp8860.c @@ -307,7 +307,9 @@ static int lp8860_probe(struct i2c_client *client) led->client = client; led->led_dev.brightness_set_blocking = lp8860_brightness_set; - devm_mutex_init(&client->dev, &led->lock); + ret = devm_mutex_init(&client->dev, &led->lock); + if (ret) + return dev_err_probe(&client->dev, ret, "Failed to initialize lock\n"); led->regmap = devm_regmap_init_i2c(client, &lp8860_regmap_config); if (IS_ERR(led->regmap)) {
Even if it's not critical, the avoidance of checking the error code from devm_mutex_init() call today diminishes the point of using devm variant of it. Tomorrow it may even leak something. Add the missed check. Fixes: 87a59548af95 ("leds: lp8860: Use new mutex guards to cleanup function exits") Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> --- drivers/leds/leds-lp8860.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)