diff mbox series

[v2] iio: temperature: mlx90635: Fix ERR_PTR dereference in mlx90635_probe()

Message ID 20240513203427.3208696-1-harshit.m.mogalapalli@oracle.com (mailing list archive)
State Accepted
Headers show
Series [v2] iio: temperature: mlx90635: Fix ERR_PTR dereference in mlx90635_probe() | expand

Commit Message

Harshit Mogalapalli May 13, 2024, 8:34 p.m. UTC
When devm_regmap_init_i2c() fails, regmap_ee could be error pointer,
instead of checking for IS_ERR(regmap_ee), regmap is checked which looks
like a copy paste error.

Fixes: a1d1ba5e1c28 ("iio: temperature: mlx90635 MLX90635 IR Temperature sensor")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
This is found using smatch, only compile tested.
v1->v2: Address Crt's comments.
---
 drivers/iio/temperature/mlx90635.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Jonathan Cameron May 19, 2024, 12:29 p.m. UTC | #1
On Mon, 13 May 2024 13:34:27 -0700
Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> wrote:

> When devm_regmap_init_i2c() fails, regmap_ee could be error pointer,
> instead of checking for IS_ERR(regmap_ee), regmap is checked which looks
> like a copy paste error.
> 
> Fixes: a1d1ba5e1c28 ("iio: temperature: mlx90635 MLX90635 IR Temperature sensor")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Please make sure to pick up tags given on earlier versions.  You dropped
Crt's Reviewed-by without giving a reasons. I've put it back.

Applied to the fixes-togreg branch of iio.git and marked for stable.
I'll be rebasing that on rc1 once available. Until then it won't be visible.

Thanks,

Jonathan

> ---
> This is found using smatch, only compile tested.
> v1->v2: Address Crt's comments.
> ---
>  drivers/iio/temperature/mlx90635.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
> index 1f5c962c1818..f7f88498ba0e 100644
> --- a/drivers/iio/temperature/mlx90635.c
> +++ b/drivers/iio/temperature/mlx90635.c
> @@ -947,9 +947,9 @@ static int mlx90635_probe(struct i2c_client *client)
>  				     "failed to allocate regmap\n");
>  
>  	regmap_ee = devm_regmap_init_i2c(client, &mlx90635_regmap_ee);
> -	if (IS_ERR(regmap))
> -		return dev_err_probe(&client->dev, PTR_ERR(regmap),
> -				     "failed to allocate regmap\n");
> +	if (IS_ERR(regmap_ee))
> +		return dev_err_probe(&client->dev, PTR_ERR(regmap_ee),
> +				     "failed to allocate EEPROM regmap\n");
>  
>  	mlx90635 = iio_priv(indio_dev);
>  	i2c_set_clientdata(client, indio_dev);
Harshit Mogalapalli May 19, 2024, 1:36 p.m. UTC | #2
Hi Jonathan,

On 19/05/24 17:59, Jonathan Cameron wrote:
> On Mon, 13 May 2024 13:34:27 -0700
> Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> wrote:
> 
>> When devm_regmap_init_i2c() fails, regmap_ee could be error pointer,
>> instead of checking for IS_ERR(regmap_ee), regmap is checked which looks
>> like a copy paste error.
>>
>> Fixes: a1d1ba5e1c28 ("iio: temperature: mlx90635 MLX90635 IR Temperature sensor")
>> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> Please make sure to pick up tags given on earlier versions.  You dropped
> Crt's Reviewed-by without giving a reasons. I've put it back.
> 

Sorry, I thought we should not add tags as v1-->v2: is for addressing 
the reviewers(Crt's) comments.

I will keep this in mind.

Thanks,
Harshit

> Applied to the fixes-togreg branch of iio.git and marked for stable.
> I'll be rebasing that on rc1 once available. Until then it won't be visible.
> 
> Thanks,
> 
> Jonathan
> 
>> ---
>> This is found using smatch, only compile tested.
>> v1->v2: Address Crt's comments.
>> ---
>>   drivers/iio/temperature/mlx90635.c | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
>> index 1f5c962c1818..f7f88498ba0e 100644
>> --- a/drivers/iio/temperature/mlx90635.c
>> +++ b/drivers/iio/temperature/mlx90635.c
>> @@ -947,9 +947,9 @@ static int mlx90635_probe(struct i2c_client *client)
>>   				     "failed to allocate regmap\n");
>>   
>>   	regmap_ee = devm_regmap_init_i2c(client, &mlx90635_regmap_ee);
>> -	if (IS_ERR(regmap))
>> -		return dev_err_probe(&client->dev, PTR_ERR(regmap),
>> -				     "failed to allocate regmap\n");
>> +	if (IS_ERR(regmap_ee))
>> +		return dev_err_probe(&client->dev, PTR_ERR(regmap_ee),
>> +				     "failed to allocate EEPROM regmap\n");
>>   
>>   	mlx90635 = iio_priv(indio_dev);
>>   	i2c_set_clientdata(client, indio_dev);
>
Jonathan Cameron May 19, 2024, 7 p.m. UTC | #3
On Sun, 19 May 2024 19:06:55 +0530
Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> wrote:

> Hi Jonathan,
> 
> On 19/05/24 17:59, Jonathan Cameron wrote:
> > On Mon, 13 May 2024 13:34:27 -0700
> > Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> wrote:
> >   
> >> When devm_regmap_init_i2c() fails, regmap_ee could be error pointer,
> >> instead of checking for IS_ERR(regmap_ee), regmap is checked which looks
> >> like a copy paste error.
> >>
> >> Fixes: a1d1ba5e1c28 ("iio: temperature: mlx90635 MLX90635 IR Temperature sensor")
> >> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>  
> > Please make sure to pick up tags given on earlier versions.  You dropped
> > Crt's Reviewed-by without giving a reasons. I've put it back.
> >   
> 
> Sorry, I thought we should not add tags as v1-->v2: is for addressing 
> the reviewers(Crt's) comments.
> 
> I will keep this in mind.
It's a case of judging if they are likely to mind the changes.
Here Crt had confirmed he was, so easy decision!

If you drop a tag, just say why below the --- in the patch.



> 
> Thanks,
> Harshit
> 
> > Applied to the fixes-togreg branch of iio.git and marked for stable.
> > I'll be rebasing that on rc1 once available. Until then it won't be visible.
> > 
> > Thanks,
> > 
> > Jonathan
> >   
> >> ---
> >> This is found using smatch, only compile tested.
> >> v1->v2: Address Crt's comments.
> >> ---
> >>   drivers/iio/temperature/mlx90635.c | 6 +++---
> >>   1 file changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
> >> index 1f5c962c1818..f7f88498ba0e 100644
> >> --- a/drivers/iio/temperature/mlx90635.c
> >> +++ b/drivers/iio/temperature/mlx90635.c
> >> @@ -947,9 +947,9 @@ static int mlx90635_probe(struct i2c_client *client)
> >>   				     "failed to allocate regmap\n");
> >>   
> >>   	regmap_ee = devm_regmap_init_i2c(client, &mlx90635_regmap_ee);
> >> -	if (IS_ERR(regmap))
> >> -		return dev_err_probe(&client->dev, PTR_ERR(regmap),
> >> -				     "failed to allocate regmap\n");
> >> +	if (IS_ERR(regmap_ee))
> >> +		return dev_err_probe(&client->dev, PTR_ERR(regmap_ee),
> >> +				     "failed to allocate EEPROM regmap\n");
> >>   
> >>   	mlx90635 = iio_priv(indio_dev);
> >>   	i2c_set_clientdata(client, indio_dev);  
> >   
>
diff mbox series

Patch

diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
index 1f5c962c1818..f7f88498ba0e 100644
--- a/drivers/iio/temperature/mlx90635.c
+++ b/drivers/iio/temperature/mlx90635.c
@@ -947,9 +947,9 @@  static int mlx90635_probe(struct i2c_client *client)
 				     "failed to allocate regmap\n");
 
 	regmap_ee = devm_regmap_init_i2c(client, &mlx90635_regmap_ee);
-	if (IS_ERR(regmap))
-		return dev_err_probe(&client->dev, PTR_ERR(regmap),
-				     "failed to allocate regmap\n");
+	if (IS_ERR(regmap_ee))
+		return dev_err_probe(&client->dev, PTR_ERR(regmap_ee),
+				     "failed to allocate EEPROM regmap\n");
 
 	mlx90635 = iio_priv(indio_dev);
 	i2c_set_clientdata(client, indio_dev);