diff mbox

[1/1] hwmon: (ina2xx) initialize mutex before locking

Message ID f286b0f4-948f-74a7-6dc1-90ca88f3dcdc@mentor.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Ahsan Hussain April 16, 2018, 5:08 p.m. UTC
Upstream commit

8d008c0c ("hwmon: (ina2xx) Make calibration register value fixed")

makes ina2xx_set_shunt() call mutex_lock on an un-initialized mutex.
Initialize it prior so we don't get a NULL pointer dereference error

Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>
---
 drivers/hwmon/ina2xx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

 	}
 -	mutex_init(&data->config_lock);
-
 	data->groups[group++] = &ina2xx_group;
 	if (id->driver_data == ina226)
 		data->groups[group++] = &ina226_group;

Comments

Guenter Roeck April 16, 2018, 5:28 p.m. UTC | #1
On Mon, Apr 16, 2018 at 10:08:19PM +0500, Ahsan Hussain wrote:
> 
> Upstream commit
> 
> 8d008c0c ("hwmon: (ina2xx) Make calibration register value fixed")
> 
This doesn't have to be on separate lines; as written, it just causes
confusion.

> makes ina2xx_set_shunt() call mutex_lock on an un-initialized mutex.
> Initialize it prior so we don't get a NULL pointer dereference error
> 
> Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>

Good find, but your patch is corrupted to the point where any attenpt to
fix it up on my side failed. Please resend without corruption, and please
provide a Fixes: line.

Thanks,
Guenter

> ---
>  drivers/hwmon/ina2xx.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c
> index a629f7c..1304f01 100644
> --- a/drivers/hwmon/ina2xx.c
> +++ b/drivers/hwmon/ina2xx.c
> @@ -457,6 +457,8 @@ static int ina2xx_probe(struct i2c_client *client,
>  			val = INA2XX_RSHUNT_DEFAULT;
>  	}
>  +	mutex_init(&data->config_lock);
> +
>  	ina2xx_set_shunt(data, val);
>   	ina2xx_regmap_config.max_register = data->config->registers;
> @@ -473,8 +475,6 @@ static int ina2xx_probe(struct i2c_client *client,
>  		return -ENODEV;
>  	}
>  -	mutex_init(&data->config_lock);
> -
>  	data->groups[group++] = &ina2xx_group;
>  	if (id->driver_data == ina226)
>  		data->groups[group++] = &ina226_group;
> -- 
> 2.7.4
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ahsan Hussain April 16, 2018, 5:48 p.m. UTC | #2
On 04/16/2018 10:28 PM, Guenter Roeck wrote:
> On Mon, Apr 16, 2018 at 10:08:19PM +0500, Ahsan Hussain wrote:
>>
>> Upstream commit
>>
>> 8d008c0c ("hwmon: (ina2xx) Make calibration register value fixed")
>>
> This doesn't have to be on separate lines; as written, it just causes
> confusion.
> 
Will do in my next email.
>> makes ina2xx_set_shunt() call mutex_lock on an un-initialized mutex.
>> Initialize it prior so we don't get a NULL pointer dereference error
>>
>> Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>
> 
> Good find, but your patch is corrupted to the point where any attenpt to
> fix it up on my side failed. Please resend without corruption, and please
> provide a Fixes: line.
Appologies. This must be Thunderbird, I've been trying to coax into
doing otherwise. Will send the corrected patch shortly.
> 
> Thanks,
> Guenter
> 
>> ---
>>  drivers/hwmon/ina2xx.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c
>> index a629f7c..1304f01 100644
>> --- a/drivers/hwmon/ina2xx.c
>> +++ b/drivers/hwmon/ina2xx.c
>> @@ -457,6 +457,8 @@ static int ina2xx_probe(struct i2c_client *client,
>>  			val = INA2XX_RSHUNT_DEFAULT;
>>  	}
>>  +	mutex_init(&data->config_lock);
>> +
>>  	ina2xx_set_shunt(data, val);
>>   	ina2xx_regmap_config.max_register = data->config->registers;
>> @@ -473,8 +475,6 @@ static int ina2xx_probe(struct i2c_client *client,
>>  		return -ENODEV;
>>  	}
>>  -	mutex_init(&data->config_lock);
>> -
>>  	data->groups[group++] = &ina2xx_group;
>>  	if (id->driver_data == ina226)
>>  		data->groups[group++] = &ina226_group;
>> -- 
>> 2.7.4
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guenter Roeck April 16, 2018, 5:51 p.m. UTC | #3
On Mon, Apr 16, 2018 at 10:48:03PM +0500, Ahsan Hussain wrote:
> 
> 
> On 04/16/2018 10:28 PM, Guenter Roeck wrote:
> > On Mon, Apr 16, 2018 at 10:08:19PM +0500, Ahsan Hussain wrote:
> >>
> >> Upstream commit
> >>
> >> 8d008c0c ("hwmon: (ina2xx) Make calibration register value fixed")
> >>
> > This doesn't have to be on separate lines; as written, it just causes
> > confusion.
> > 
> Will do in my next email.
> >> makes ina2xx_set_shunt() call mutex_lock on an un-initialized mutex.
> >> Initialize it prior so we don't get a NULL pointer dereference error
> >>
> >> Signed-off-by: Ahsan Hussain <ahsan_hussain@mentor.com>
> > 
> > Good find, but your patch is corrupted to the point where any attenpt to
> > fix it up on my side failed. Please resend without corruption, and please
> > provide a Fixes: line.
> Appologies. This must be Thunderbird, I've been trying to coax into
> doing otherwise. Will send the corrected patch shortly.

Best is to set up and use git send-email. Anyway, you can see the result
of the corruption at https://patchwork.kernel.org/patch/10343535/;
it appears that patchwork doesn't understand your patch either.

Guenter

> > 
> > Thanks,
> > Guenter
> > 
> >> ---
> >>  drivers/hwmon/ina2xx.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c
> >> index a629f7c..1304f01 100644
> >> --- a/drivers/hwmon/ina2xx.c
> >> +++ b/drivers/hwmon/ina2xx.c
> >> @@ -457,6 +457,8 @@ static int ina2xx_probe(struct i2c_client *client,
> >>  			val = INA2XX_RSHUNT_DEFAULT;
> >>  	}
> >>  +	mutex_init(&data->config_lock);
> >> +
> >>  	ina2xx_set_shunt(data, val);
> >>   	ina2xx_regmap_config.max_register = data->config->registers;
> >> @@ -473,8 +475,6 @@ static int ina2xx_probe(struct i2c_client *client,
> >>  		return -ENODEV;
> >>  	}
> >>  -	mutex_init(&data->config_lock);
> >> -
> >>  	data->groups[group++] = &ina2xx_group;
> >>  	if (id->driver_data == ina226)
> >>  		data->groups[group++] = &ina226_group;
> >> -- 
> >> 2.7.4
> >>
--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/hwmon/ina2xx.c b/drivers/hwmon/ina2xx.c
index a629f7c..1304f01 100644
--- a/drivers/hwmon/ina2xx.c
+++ b/drivers/hwmon/ina2xx.c
@@ -457,6 +457,8 @@  static int ina2xx_probe(struct i2c_client *client,
 			val = INA2XX_RSHUNT_DEFAULT;
 	}
 +	mutex_init(&data->config_lock);
+
 	ina2xx_set_shunt(data, val);
  	ina2xx_regmap_config.max_register = data->config->registers;
@@ -473,8 +475,6 @@  static int ina2xx_probe(struct i2c_client *client,
 		return -ENODEV;