diff mbox series

[-next] hwmon: (lm80) Fix missing unlock on error in set_fan_div()

Message ID 1545823704-73836-1-git-send-email-weiyongjun1@huawei.com (mailing list archive)
State Accepted
Headers show
Series [-next] hwmon: (lm80) Fix missing unlock on error in set_fan_div() | expand

Commit Message

Wei Yongjun Dec. 26, 2018, 11:28 a.m. UTC
Add the missing unlock before return from function set_fan_div()
in the error handling case.

Fixes: c9c63915519b ("hwmon: (lm80) fix a missing check of the status of SMBus read")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
---
 drivers/hwmon/lm80.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Guenter Roeck Dec. 26, 2018, 3:41 p.m. UTC | #1
On Wed, Dec 26, 2018 at 11:28:24AM +0000, Wei Yongjun wrote:
> Add the missing unlock before return from function set_fan_div()
> in the error handling case.
> 
> Fixes: c9c63915519b ("hwmon: (lm80) fix a missing check of the status of SMBus read")
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

Applied.

Thanks,
Guenter

> ---
>  drivers/hwmon/lm80.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c
> index 0e30fa0..f9b8e3e 100644
> --- a/drivers/hwmon/lm80.c
> +++ b/drivers/hwmon/lm80.c
> @@ -393,8 +393,10 @@ static ssize_t set_fan_div(struct device *dev, struct device_attribute *attr,
>  	}
>  
>  	rv = lm80_read_value(client, LM80_REG_FANDIV);
> -	if (rv < 0)
> +	if (rv < 0) {
> +		mutex_unlock(&data->update_lock);
>  		return rv;
> +	}
>  	reg = (rv & ~(3 << (2 * (nr + 1))))
>  	    | (data->fan_div[nr] << (2 * (nr + 1)));
>  	lm80_write_value(client, LM80_REG_FANDIV, reg);
diff mbox series

Patch

diff --git a/drivers/hwmon/lm80.c b/drivers/hwmon/lm80.c
index 0e30fa0..f9b8e3e 100644
--- a/drivers/hwmon/lm80.c
+++ b/drivers/hwmon/lm80.c
@@ -393,8 +393,10 @@  static ssize_t set_fan_div(struct device *dev, struct device_attribute *attr,
 	}
 
 	rv = lm80_read_value(client, LM80_REG_FANDIV);
-	if (rv < 0)
+	if (rv < 0) {
+		mutex_unlock(&data->update_lock);
 		return rv;
+	}
 	reg = (rv & ~(3 << (2 * (nr + 1))))
 	    | (data->fan_div[nr] << (2 * (nr + 1)));
 	lm80_write_value(client, LM80_REG_FANDIV, reg);