diff mbox series

leds: st1202: Fix an error handling path in st1202_probe()

Message ID 4afa457713874729eb61eec533a4674a51d1d242.1739985599.git.christophe.jaillet@wanadoo.fr
State New
Headers show
Series leds: st1202: Fix an error handling path in st1202_probe() | expand

Commit Message

Christophe JAILLET Feb. 19, 2025, 5:20 p.m. UTC
devm_mutex_init() may return -ENOMEM.
So this error should be handled in st1202_probe().

Fixes: 259230378c65 ("leds: Add LED1202 I2C driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/leds/leds-st1202.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Christophe JAILLET Feb. 23, 2025, 4:20 p.m. UTC | #1
Le 20/02/2025 à 16:58, Lee Jones a écrit :
> On Wed, 19 Feb 2025, Christophe JAILLET wrote:
> 
>> devm_mutex_init() may return -ENOMEM.
>> So this error should be handled in st1202_probe().
> 
> The start of a new sentence shouldn't warrant a line break.
> 
>> Fixes: 259230378c65 ("leds: Add LED1202 I2C driver")
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> ---
>>   drivers/leds/leds-st1202.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/leds/leds-st1202.c b/drivers/leds/leds-st1202.c
>> index b691c4886993..4fc17d518292 100644
>> --- a/drivers/leds/leds-st1202.c
>> +++ b/drivers/leds/leds-st1202.c
>> @@ -356,7 +356,10 @@ static int st1202_probe(struct i2c_client *client)
>>   	if (!chip)
>>   		return -ENOMEM;
>>   
>> -	devm_mutex_init(&client->dev, &chip->lock);
>> +	ret = devm_mutex_init(&client->dev, &chip->lock);
>> +	if (ret < 0)
> 
> My assumption is that anything but 0 would be bad, thus:
> 
> 	if (ret)

Matter of taste. All other tests in this driver are "if (ret < 0)" or 
"if (ret != 0)".

What do you prefer: consistency or concision? (my own choice goes to 
consistency)

If you confirm concision, I'll send a v2 that also fix your other 
comment above.

CJ

> 
>> +		return ret;
>> +
>>   	chip->client = client;
>>   
>>   	ret = st1202_dt_init(chip);
>> -- 
>> 2.48.1
>>
>
Lee Jones Feb. 27, 2025, 5:50 p.m. UTC | #2
On Sun, 23 Feb 2025, Christophe JAILLET wrote:

> Le 20/02/2025 à 16:58, Lee Jones a écrit :
> > On Wed, 19 Feb 2025, Christophe JAILLET wrote:
> > 
> > > devm_mutex_init() may return -ENOMEM.
> > > So this error should be handled in st1202_probe().
> > 
> > The start of a new sentence shouldn't warrant a line break.
> > 
> > > Fixes: 259230378c65 ("leds: Add LED1202 I2C driver")
> > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> > > ---
> > >   drivers/leds/leds-st1202.c | 5 ++++-
> > >   1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/leds/leds-st1202.c b/drivers/leds/leds-st1202.c
> > > index b691c4886993..4fc17d518292 100644
> > > --- a/drivers/leds/leds-st1202.c
> > > +++ b/drivers/leds/leds-st1202.c
> > > @@ -356,7 +356,10 @@ static int st1202_probe(struct i2c_client *client)
> > >   	if (!chip)
> > >   		return -ENOMEM;
> > > -	devm_mutex_init(&client->dev, &chip->lock);
> > > +	ret = devm_mutex_init(&client->dev, &chip->lock);
> > > +	if (ret < 0)
> > 
> > My assumption is that anything but 0 would be bad, thus:
> > 
> > 	if (ret)
> 
> Matter of taste. All other tests in this driver are "if (ret < 0)" or "if
> (ret != 0)".
> 
> What do you prefer: consistency or concision? (my own choice goes to
> consistency)
> 
> If you confirm concision, I'll send a v2 that also fix your other comment
> above.

Ah, I just attempted to apply the patch, but it looks like it's already
fixed in ("leds: st1202: Check for error code from devm_mutex_init()
call").
diff mbox series

Patch

diff --git a/drivers/leds/leds-st1202.c b/drivers/leds/leds-st1202.c
index b691c4886993..4fc17d518292 100644
--- a/drivers/leds/leds-st1202.c
+++ b/drivers/leds/leds-st1202.c
@@ -356,7 +356,10 @@  static int st1202_probe(struct i2c_client *client)
 	if (!chip)
 		return -ENOMEM;
 
-	devm_mutex_init(&client->dev, &chip->lock);
+	ret = devm_mutex_init(&client->dev, &chip->lock);
+	if (ret < 0)
+		return ret;
+
 	chip->client = client;
 
 	ret = st1202_dt_init(chip);