[PATCH 04/13] crypto: qat - disable arbitration before reset
Thibault Ferrante
thibault.ferrante at canonical.com
Thu Mar 7 22:05:42 UTC 2024
From: Furong Zhou <furong.zhou at intel.com>
BugLink: https://bugs.launchpad.net/bugs/2056354
Disable arbitration to avoid new requests to be processed before
resetting a device.
This is needed so that new requests are not fetched when an error is
detected.
Signed-off-by: Furong Zhou <furong.zhou at intel.com>
Reviewed-by: Ahsan Atta <ahsan.atta at intel.com>
Reviewed-by: Markas Rapoportas <markas.rapoportas at intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu at intel.com>
Signed-off-by: Mun Chun Yep <mun.chun.yep at intel.com>
Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
(cherry picked from commit 758a0087db98fa23a3597289dbf3643ba9db2700 linux-next)
Signed-off-by: Thibault Ferrante <thibault.ferrante at canonical.com>
---
drivers/crypto/intel/qat/qat_common/adf_aer.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/crypto/intel/qat/qat_common/adf_aer.c b/drivers/crypto/intel/qat/qat_common/adf_aer.c
index 22a43b4b8315..acbbd32bd815 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_aer.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_aer.c
@@ -181,8 +181,16 @@ static void adf_notify_fatal_error_worker(struct work_struct *work)
struct adf_fatal_error_data *wq_data =
container_of(work, struct adf_fatal_error_data, work);
struct adf_accel_dev *accel_dev = wq_data->accel_dev;
+ struct adf_hw_device_data *hw_device = accel_dev->hw_device;
adf_error_notifier(accel_dev);
+
+ if (!accel_dev->is_vf) {
+ /* Disable arbitration to stop processing of new requests */
+ if (hw_device->exit_arb)
+ hw_device->exit_arb(accel_dev);
+ }
+
kfree(wq_data);
}
--
2.43.0
More information about the kernel-team
mailing list