hwmon: (amc6821) Fix possible race condition bug
PATCH 1/1 hwmon: (amc6821) Fix possible race condition bug
Ensure mutex lock protects the read-modify-write period to prevent possible race condition bug.
In additional, update data->valid should also be protected by the mutex lock.
Signed-off-by Axel Lin <[email protected]>
--- drivers/hwmon/amc6821.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
drivers/hwmon/amc6821.c +11 -6
@@ -415,11 +415,13 @@ static ssize_t set_pwm1_enable(if (config)return config; +mutex_lock (&data->update_lock); config =i2c_smbus_read_byte_data (client,AMC6821_REG_CONF1 );if (config <0 ) {dev_err (&client->dev,"Error reading configuration register, aborting.\n" ); -return config; + count = config; + goto unlock; }switch (val) {
@@ -436,14 +438,15 @@ static ssize_t set_pwm1_enable( config |=AMC6821_CONF1_FDRC1 ;break ;default : -return -EINVAL ; + count = -EINVAL ; + goto unlock; } -mutex_lock (&data->update_lock);if (i2c_smbus_write_byte_data (client,AMC6821_REG_CONF1 , config)) {dev_err (&client->dev,"Configuration register write error, aborting.\n" ); count = -EIO ; } +unlock:mutex_unlock (&data->update_lock);return count; }
@@ -542,8 +545,9 @@ static ssize_t set_temp_auto_point_temp(return -EINVAL ; } - data->valid =0 ;mutex_lock (&data->update_lock); + data->valid =0 ; +switch (ix) {case 0 : ptemp[0] = clamp_val(val / 1000, 0,
@@ -699,13 +703,14 @@ static ssize_t set_fan1_div(if (config)return config; +mutex_lock (&data->update_lock); config =i2c_smbus_read_byte_data (client,AMC6821_REG_CONF4 );if (config <0 ) {dev_err (&client->dev,"Error reading configuration register, aborting.\n" ); -return config; + count = config; + goto EXIT; } -mutex_lock (&data->update_lock);switch (val) {case 2 : config &= ~AMC6821_CONF4_PSPR ;
Signature · 9 lines
1.9.1 _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Quoted 5 lines · Axel Lin
Ensure mutex lock protects the read-modify-write period to prevent possible race condition bug.
In additional, updatedata->validshould also be protected by the mutex lock.Signed-off-by Axel Lin <[email protected]>
Good catch.
Applied.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors