diff mbox series

crypto: qat - fix mutex ordering in adf_rl

Message ID 20231128174053.84356-1-damian.muszynski@intel.com
State Accepted
Commit 487caa8d5ef9a9a27b092c5790d529a7a0c24f8b
Headers show
Series crypto: qat - fix mutex ordering in adf_rl | expand

Commit Message

Damian Muszynski Nov. 28, 2023, 5:39 p.m. UTC
If the function validate_user_input() returns an error, the error path
attempts to unlock an unacquired mutex.
Acquire the mutex before calling validate_user_input(). This is not
strictly necessary but simplifies the code.

Fixes: d9fb8408376e ("crypto: qat - add rate limiting feature to qat_4xxx")
Signed-off-by: Damian Muszynski <damian.muszynski@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
---
 drivers/crypto/intel/qat/qat_common/adf_rl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


base-commit: ed628a28e67c93d65400e7f00e0ff5d4f7a87070

Comments

Herbert Xu Dec. 8, 2023, 4:07 a.m. UTC | #1
On Tue, Nov 28, 2023 at 06:39:30PM +0100, Damian Muszynski wrote:
> If the function validate_user_input() returns an error, the error path
> attempts to unlock an unacquired mutex.
> Acquire the mutex before calling validate_user_input(). This is not
> strictly necessary but simplifies the code.
> 
> Fixes: d9fb8408376e ("crypto: qat - add rate limiting feature to qat_4xxx")
> Signed-off-by: Damian Muszynski <damian.muszynski@intel.com>
> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
> ---
>  drivers/crypto/intel/qat/qat_common/adf_rl.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Patch applied.  Thanks.
diff mbox series

Patch

diff --git a/drivers/crypto/intel/qat/qat_common/adf_rl.c b/drivers/crypto/intel/qat/qat_common/adf_rl.c
index f2de3cd7d05d..de1b214dba1f 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_rl.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_rl.c
@@ -815,13 +815,13 @@  static int add_update_sla(struct adf_accel_dev *accel_dev,
 		return -EFAULT;
 	}
 
+	mutex_lock(&rl_data->rl_lock);
+
 	/* Input validation */
 	ret = validate_user_input(accel_dev, sla_in, is_update);
 	if (ret)
 		goto ret_err;
 
-	mutex_lock(&rl_data->rl_lock);
-
 	if (is_update) {
 		ret = validate_sla_id(accel_dev, sla_in->sla_id);
 		if (ret)