crypto: qat - fix mutex ordering in adf_rl
authorDamian Muszynski <damian.muszynski@intel.com>
Tue, 28 Nov 2023 17:39:30 +0000 (18:39 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 8 Dec 2023 03:59:44 +0000 (11:59 +0800)
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>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/adf_rl.c

index f2de3cd7d05d77dfeeee4f70237d789306040a95..de1b214dba1f98b74593f6c7cac1350ca5782471 100644 (file)
@@ -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)