crypto: qat/adf_aer - Replace GFP_ATOMIC with GFP_KERNEL in adf_dev_aer_schedule_reset()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Mon, 23 Jul 2018 08:27:44 +0000 (16:27 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 3 Aug 2018 10:05:49 +0000 (18:05 +0800)
adf_dev_aer_schedule_reset() is never called in atomic context, as it
calls wait_for_completion_timeout().

adf_dev_aer_schedule_reset() calls kzalloc() with GFP_ATOMIC,
which is not necessary.
GFP_ATOMIC can be replaced with GFP_KERNEL.

This is found by a static analysis tool named DCNS written by myself.
I also manually check the kernel code before reporting it.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/qat/qat_common/adf_aer.c

index da8a2d3..9225d06 100644 (file)
@@ -163,7 +163,7 @@ static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
                return 0;
 
        set_bit(ADF_STATUS_RESTARTING, &accel_dev->status);
-       reset_data = kzalloc(sizeof(*reset_data), GFP_ATOMIC);
+       reset_data = kzalloc(sizeof(*reset_data), GFP_KERNEL);
        if (!reset_data)
                return -ENOMEM;
        reset_data->accel_dev = accel_dev;