hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status()

Message ID 20240122154952.2851934-1-harshit.m.mogalapalli@oracle.com
State New
Headers
Series hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status() |

Commit Message

Harshit Mogalapalli Jan. 22, 2024, 3:49 p.m. UTC
  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 <harshit.m.mogalapalli@oracle.com>
---
This is based on static analysis with smatch, only compile tested.
---
 drivers/hwmon/gigabyte_waterforce.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Aleksa Savic Jan. 23, 2024, 8:46 p.m. UTC | #1
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 <harshit.m.mogalapalli@oracle.com>
> ---
> 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 <savicaleksa83@gmail.com>

Thanks,
Aleksa
  
Guenter Roeck Jan. 26, 2024, 6:40 p.m. UTC | #2
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 <harshit.m.mogalapalli@oracle.com>
> Reviewed-by: Aleksa Savic <savicaleksa83@gmail.com>

Applied.

Thanks,
Guenter
  

Patch

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));