linux-stable/drivers/crypto
Ahsan Atta 8af4a436e6 crypto: qat - flush vf workqueue at driver removal
There is a race condition during shutdown in adf_disable_sriov() where
both the PF and the VF drivers are loaded on the host system.
The PF notifies a VF with a "RESTARTING" message due to which the VF
starts an asynchronous worker to stop and shutdown itself.
At the same time the PF calls pci_disable_sriov() which invokes the
remove() routine on the VF device driver triggering the shutdown flow
again.

This change fixes the problem by ensuring that the VF flushes the worker
that performs stop()/shutdown() before these two functions are called in
the remove(). To make sure that no additional PV/VF messages are
processed by the VF, interrupts are disabled before flushing the
workqueue.

Signed-off-by: Ahsan Atta <ahsan.atta@intel.com>
Co-developed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@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:56 +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 - flush vf workqueue at driver removal 2021-08-21 15:44:56 +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