linux/drivers/crypto/qat
Giovanni Cabiddu 7eadcfd633 crypto: qat - prevent spurious MSI interrupt in VF
QAT GEN2 devices suffer from a defect where the MSI interrupt can be
sent multiple times.

If the second (spurious) interrupt is handled before the bottom half
handler runs, then the extra interrupt is effectively ignored because
the bottom half is only scheduled once.
However, if the top half runs again after the bottom half runs, this
will appear as a spurious PF to VF interrupt.

This can be avoided by checking the interrupt mask register in addition
to the interrupt source register in the interrupt handler.

This patch is based on earlier work done by Conor McLoughlin.

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Co-developed-by: Marco Chiappero <marco.chiappero@intel.com>
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2021-08-21 15:44:55 +08:00
..
qat_4xxx crypto: qat - simplify code and axe the use of a deprecated API 2021-08-21 15:44:53 +08:00
qat_c3xxx crypto: qat - disable AER if an error occurs in probe functions 2021-08-21 15:44:54 +08:00
qat_c3xxxvf crypto: qat - set DMA mask to 48 bits for Gen2 2021-08-21 15:44:54 +08:00
qat_c62x crypto: qat - disable AER if an error occurs in probe functions 2021-08-21 15:44:54 +08:00
qat_c62xvf crypto: qat - set DMA mask to 48 bits for Gen2 2021-08-21 15:44:54 +08:00
qat_common crypto: qat - prevent spurious MSI interrupt in VF 2021-08-21 15:44:55 +08:00
qat_dh895xcc crypto: qat - disable AER if an error occurs in probe functions 2021-08-21 15:44:54 +08:00
qat_dh895xccvf crypto: qat - set DMA mask to 48 bits for Gen2 2021-08-21 15:44:54 +08:00
Kconfig crypto: qat - replace CRYPTO_AES with CRYPTO_LIB_AES in Kconfig 2021-01-14 17:10:25 +11:00
Makefile crypto: qat - add qat_4xxx driver 2020-11-20 14:45:34 +11:00