Skip to content

Commit 01aed66

Browse files
s-pankratovherbertx
authored andcommitted
crypto: qat - fix double free during reset
There is no need to free the reset_data structure if the recovery is unsuccessful and the reset is synchronous. The function adf_dev_aer_schedule_reset() handles the cleanup properly. Only asynchronous resets require such structure to be freed inside the reset worker. Fixes: d8cba25 ("crypto: qat - Intel(R) QAT driver framework") Signed-off-by: Svyatoslav Pankratov <[email protected]> Signed-off-by: Giovanni Cabiddu <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent fdcac2d commit 01aed66

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/crypto/intel/qat/qat_common/adf_aer.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ static void adf_device_reset_worker(struct work_struct *work)
9292
if (adf_dev_restart(accel_dev)) {
9393
/* The device hanged and we can't restart it so stop here */
9494
dev_err(&GET_DEV(accel_dev), "Restart device failed\n");
95-
kfree(reset_data);
95+
if (reset_data->mode == ADF_DEV_RESET_ASYNC)
96+
kfree(reset_data);
9697
WARN(1, "QAT: device restart failed. Device is unusable\n");
9798
return;
9899
}

0 commit comments

Comments
 (0)