aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/qat/qat_common/adf_common_drv.h
diff options
context:
space:
mode:
authorTadeusz Struk <tadeusz.struk@intel.com>2016-04-06 11:01:54 -0700
committerHerbert Xu <herbert@gondor.apana.org.au>2016-04-15 22:35:45 +0800
commitd6064165ba4449ea085a389724d728258a3180ec (patch)
treeae38a87001011166778e6c1fa6a437560bab8a4e /drivers/crypto/qat/qat_common/adf_common_drv.h
parentcrypto: ccp - Fix RT breaking #include <linux/rwlock_types.h> (diff)
downloadlinux-dev-d6064165ba4449ea085a389724d728258a3180ec.tar.xz
linux-dev-d6064165ba4449ea085a389724d728258a3180ec.zip
crypto: qat - adf_dev_stop should not be called in atomic context
VFs call adf_dev_stop() from a PF to VF interrupt bottom half. This causes an oops "scheduling while atomic", because it tries to acquire a mutex to un-register crypto algorithms. This patch fixes the issue by calling adf_dev_stop() asynchronously. Changes in v2: - change kthread to a work queue. Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/qat/qat_common/adf_common_drv.h')
-rw-r--r--drivers/crypto/qat/qat_common/adf_common_drv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h
index c9e4d469e930..fd096eda880f 100644
--- a/drivers/crypto/qat/qat_common/adf_common_drv.h
+++ b/drivers/crypto/qat/qat_common/adf_common_drv.h
@@ -144,6 +144,8 @@ void adf_disable_aer(struct adf_accel_dev *accel_dev);
void adf_dev_restore(struct adf_accel_dev *accel_dev);
int adf_init_aer(void);
void adf_exit_aer(void);
+int adf_init_vf_wq(void);
+void adf_exit_vf_wq(void);
int adf_init_admin_comms(struct adf_accel_dev *accel_dev);
void adf_exit_admin_comms(struct adf_accel_dev *accel_dev);
int adf_send_admin_init(struct adf_accel_dev *accel_dev);