linux/drivers/crypto
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
..
allwinner crypto: sun8i-ce - use kfree_sensitive to clear and free sensitive data 2021-08-12 19:16:57 +08:00
amcc crypto: amcc - fix incorrect kernel-doc comment syntax in files 2021-03-26 20:15:58 +11:00
amlogic crypto: amlogic - Fix the parameter of dma_unmap_sg() 2021-03-26 20:02:34 +11:00
axis
bcm crypto: bcm - Fix a whole host of kernel-doc misdemeanours 2021-03-26 20:02:35 +11:00
caam crypto: caam - Provide the name of the function and provide missing descriptions 2021-03-26 20:02:36 +11:00
cavium crypto: cavium/nitrox - Fix an error rhandling path in 'nitrox_probe()' 2021-06-11 15:08:06 +08:00
ccp crypto: ccp - shutdown SEV firmware on kexec 2021-08-06 19:45:25 +08:00
ccree crypto: ccree - Remove redundant dev_err call in init_cc_resources() 2021-04-16 21:16:32 +10:00
chelsio crypto: chelsio/chcr - Remove useless MODULE_VERSION 2021-04-22 17:31:31 +10:00
gemini crypto: sl3516 - Typo s/Stormlink/Storlink/ 2021-06-28 11:28:08 +08:00
hisilicon crypto: hisilicon - enable hpre device clock gating 2021-08-12 19:17:01 +08:00
inside-secure crypto: inside-secure - Minor typo fix in the file safexcel.c 2021-03-26 20:02:35 +11:00
keembay crypto: keembay - Remove redundant dev_err calls 2021-04-16 21:16:32 +10:00
marvell crypto: marvell/cesa - change FPGA indirect article to an 2021-06-17 15:07:30 +08:00
nx powerpc updates for 5.14 2021-07-02 12:54:34 -07:00
qat crypto: qat - prevent spurious MSI interrupt in VF 2021-08-21 15:44:55 +08:00
qce crypto: qce - fix error return code in qce_skcipher_async_req_handle() 2021-06-11 15:03:29 +08:00
rockchip crypto: rockchip - delete unneeded variable initialization 2021-04-09 17:45:13 +10:00
stm32 crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c 2021-04-16 21:16:33 +10:00
ux500 crypto: ux500 - Fix error return code in hash_hw_final() 2021-05-14 19:07:58 +08:00
virtio crypto: virtio - Replace deprecated CPU-hotplug functions. 2021-08-12 19:16:58 +08:00
vmx crypto: vmx - fix incorrect kernel-doc comment syntax in files 2021-03-26 20:15:58 +11:00
xilinx
atmel-aes-regs.h
atmel-aes.c crypto: atmel-aes - use swap() 2021-07-30 10:58:37 +08:00
atmel-authenc.h
atmel-ecc.c crypto: atmel-ecc - Struct headers need to start with keyword 'struct' 2021-03-26 20:02:36 +11:00
atmel-i2c.c crypto: atmel - use the correct print format 2021-04-16 21:16:33 +10:00
atmel-i2c.h
atmel-sha-regs.h
atmel-sha.c crypto: atmel - use the correct print format 2021-04-16 21:16:33 +10:00
atmel-sha204a.c
atmel-tdes-regs.h
atmel-tdes.c crypto: atmel - Set OFB's blocksize to 1 2021-07-30 10:58:34 +08:00
exynos-rng.c
geode-aes.c crypto: geode - use DEFINE_SPINLOCK() for spinlock 2021-04-16 21:16:31 +10:00
geode-aes.h
hifn_795x.c
img-hash.c crypto: img-hash - Remove redundant dev_err call in img_hash_probe() 2021-04-16 21:16:32 +10:00
ixp4xx_crypto.c ARM: SoC changes for 5.14 2021-07-10 09:22:44 -07:00
Kconfig crypto: sl3516 - Add dependency on ARCH_GEMINI 2021-06-28 11:28:08 +08:00
Makefile crypto: sl3516 - Add sl3516 crypto engine 2021-06-11 15:03:29 +08:00
mxs-dcp.c crypto: mxs-dcp - Use sg_mapping_iter to copy data 2021-07-16 15:49:34 +08:00
n2_asm.S
n2_core.c
n2_core.h
omap-aes-gcm.c
omap-aes.c crypto: omap - Fix inconsistent locking of device lists 2021-08-21 15:44:53 +08:00
omap-aes.h
omap-crypto.c crypto: omap - Avoid redundant copy when using truncated sg list 2021-08-21 15:44:53 +08:00
omap-crypto.h
omap-des.c crypto: omap - Fix inconsistent locking of device lists 2021-08-21 15:44:53 +08:00
omap-sham.c crypto: omap - Fix inconsistent locking of device lists 2021-08-21 15:44:53 +08:00
padlock-aes.c
padlock-sha.c
qcom-rng.c
s5p-sss.c crypto: s5p-sss - consistently use local 'dev' variable in probe() 2021-04-22 17:31:31 +10:00
sa2ul.c crypto: sa2ul - Remove unused auth_len variable 2021-06-24 14:51:34 +08:00
sa2ul.h crypto: sa2ul - Add support for AM64 2021-04-22 17:31:30 +10:00
sahara.c
talitos.c
talitos.h