2024-01-22 17:07:05

by Harshit Mogalapalli

[permalink] [raw]
Subject: [PATCH] hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status()

Goto 'unlock_and_return' for unlocking before returning on the error
path.

Fixes: d5939a793693 ("hwmon: Add driver for Gigabyte AORUS Waterforce AIO coolers")
Signed-off-by: Harshit Mogalapalli <[email protected]>
---
This is based on static analysis with smatch, only compile tested.
---
drivers/hwmon/gigabyte_waterforce.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/gigabyte_waterforce.c b/drivers/hwmon/gigabyte_waterforce.c
index 1799377fc2f1..7bccfe2eaa76 100644
--- a/drivers/hwmon/gigabyte_waterforce.c
+++ b/drivers/hwmon/gigabyte_waterforce.c
@@ -146,7 +146,7 @@ static int waterforce_get_status(struct waterforce_data *priv)
/* Send command for getting status */
ret = waterforce_write_expanded(priv, get_status_cmd, GET_STATUS_CMD_LENGTH);
if (ret < 0)
- return ret;
+ goto unlock_and_return;

ret = wait_for_completion_interruptible_timeout(&priv->status_report_received,
msecs_to_jiffies(STATUS_VALIDITY));
--
2.39.3



2024-01-23 20:48:15

by Aleksa Savic

[permalink] [raw]
Subject: Re: [PATCH] hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status()

On 2024-01-22 16:49:52 GMT+01:00, Harshit Mogalapalli wrote:
> Goto 'unlock_and_return' for unlocking before returning on the error
> path.
>
> Fixes: d5939a793693 ("hwmon: Add driver for Gigabyte AORUS Waterforce AIO coolers")
> Signed-off-by: Harshit Mogalapalli <[email protected]>
> ---
> This is based on static analysis with smatch, only compile tested.
> ---
> drivers/hwmon/gigabyte_waterforce.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/gigabyte_waterforce.c b/drivers/hwmon/gigabyte_waterforce.c
> index 1799377fc2f1..7bccfe2eaa76 100644
> --- a/drivers/hwmon/gigabyte_waterforce.c
> +++ b/drivers/hwmon/gigabyte_waterforce.c
> @@ -146,7 +146,7 @@ static int waterforce_get_status(struct waterforce_data *priv)
> /* Send command for getting status */
> ret = waterforce_write_expanded(priv, get_status_cmd, GET_STATUS_CMD_LENGTH);
> if (ret < 0)
> - return ret;
> + goto unlock_and_return;
>
> ret = wait_for_completion_interruptible_timeout(&priv->status_report_received,
> msecs_to_jiffies(STATUS_VALIDITY));

Reviewed-by: Aleksa Savic <[email protected]>

Thanks,
Aleksa

2024-01-26 18:44:36

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status()

On Mon, Jan 22, 2024 at 07:49:52AM -0800, Harshit Mogalapalli wrote:
> Goto 'unlock_and_return' for unlocking before returning on the error
> path.
>
> Fixes: d5939a793693 ("hwmon: Add driver for Gigabyte AORUS Waterforce AIO coolers")
> Signed-off-by: Harshit Mogalapalli <[email protected]>
> Reviewed-by: Aleksa Savic <[email protected]>

Applied.

Thanks,
Guenter