2023-09-21 02:44:34

by Chunyan Zhang

[permalink] [raw]
Subject: [PATCH] leds: sc27xx: Add a missing mutex_destory()

In sc27xx_led_probe() there's one error branch missing mutex_destory()
after mutex_init(), it seems that we should add it since other branches
which follow it called mutex_destoy() before return failure.

Fixes: e081c49e30ec ("leds: Add Spreadtrum SC27xx breathing light controller driver")
Signed-off-by: Chunyan Zhang <[email protected]>
---
drivers/leds/leds-sc27xx-bltc.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/leds/leds-sc27xx-bltc.c b/drivers/leds/leds-sc27xx-bltc.c
index e199ea15e406..122094bbf444 100644
--- a/drivers/leds/leds-sc27xx-bltc.c
+++ b/drivers/leds/leds-sc27xx-bltc.c
@@ -300,6 +300,7 @@ static int sc27xx_led_probe(struct platform_device *pdev)
priv->base = base;
priv->regmap = dev_get_regmap(dev->parent, NULL);
if (!priv->regmap) {
+ mutex_destroy(&priv->lock);
err = -ENODEV;
dev_err(dev, "failed to get regmap: %d\n", err);
return err;
--
2.41.0


2023-09-21 20:50:54

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH] leds: sc27xx: Add a missing mutex_destory()

On Thu, 21 Sep 2023, Chunyan Zhang wrote:

> In sc27xx_led_probe() there's one error branch missing mutex_destory()
> after mutex_init(), it seems that we should add it since other branches
> which follow it called mutex_destoy() before return failure.

Wouldn't it be better to move the mutex_init() to the end of .probe()?

> Fixes: e081c49e30ec ("leds: Add Spreadtrum SC27xx breathing light controller driver")
> Signed-off-by: Chunyan Zhang <[email protected]>
> ---
> drivers/leds/leds-sc27xx-bltc.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/leds/leds-sc27xx-bltc.c b/drivers/leds/leds-sc27xx-bltc.c
> index e199ea15e406..122094bbf444 100644
> --- a/drivers/leds/leds-sc27xx-bltc.c
> +++ b/drivers/leds/leds-sc27xx-bltc.c
> @@ -300,6 +300,7 @@ static int sc27xx_led_probe(struct platform_device *pdev)
> priv->base = base;
> priv->regmap = dev_get_regmap(dev->parent, NULL);
> if (!priv->regmap) {
> + mutex_destroy(&priv->lock);
> err = -ENODEV;
> dev_err(dev, "failed to get regmap: %d\n", err);
> return err;
> --
> 2.41.0
>

--
Lee Jones [李琼斯]