diff options
author | Tadeusz Struk <tadeusz.struk@intel.com> | 2016-04-15 13:37:59 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2016-04-18 06:49:51 -0400 |
commit | 25c6ffb249f612c56a48ce48a3887adf57b8f4bd (patch) | |
tree | 07ed8b28f2cff9088ed74eea049757cadce16393 | |
parent | 02dc8d634b4f175d92aa8b0b217eb0e4db1a0c3b (diff) |
crypto: qat - check if PF is running
Before VF sends a signal to PF it should check if PF
is still running.
Tested-by: Suman Bangalore Sathyanarayana <sumanx.bangalore.sathyanarayana@intel.com>
Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | 2 | ||||
-rw-r--r-- | drivers/crypto/qat/qat_c62xvf/adf_drv.c | 2 | ||||
-rw-r--r-- | drivers/crypto/qat/qat_common/adf_common_drv.h | 2 | ||||
-rw-r--r-- | drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | 8 | ||||
-rw-r--r-- | drivers/crypto/qat/qat_common/adf_vf_isr.c | 2 | ||||
-rw-r--r-- | drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 2 |
6 files changed, 14 insertions, 4 deletions
diff --git a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c index a998981e9610..949d77b79fbe 100644 --- a/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c +++ b/drivers/crypto/qat/qat_c3xxxvf/adf_drv.c | |||
@@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
238 | if (ret) | 238 | if (ret) |
239 | goto out_err_free_reg; | 239 | goto out_err_free_reg; |
240 | 240 | ||
241 | set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status); | ||
242 | |||
241 | ret = adf_dev_init(accel_dev); | 243 | ret = adf_dev_init(accel_dev); |
242 | if (ret) | 244 | if (ret) |
243 | goto out_err_dev_shutdown; | 245 | goto out_err_dev_shutdown; |
diff --git a/drivers/crypto/qat/qat_c62xvf/adf_drv.c b/drivers/crypto/qat/qat_c62xvf/adf_drv.c index ccfb25e8a4a1..7540ce13b0d0 100644 --- a/drivers/crypto/qat/qat_c62xvf/adf_drv.c +++ b/drivers/crypto/qat/qat_c62xvf/adf_drv.c | |||
@@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
238 | if (ret) | 238 | if (ret) |
239 | goto out_err_free_reg; | 239 | goto out_err_free_reg; |
240 | 240 | ||
241 | set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status); | ||
242 | |||
241 | ret = adf_dev_init(accel_dev); | 243 | ret = adf_dev_init(accel_dev); |
242 | if (ret) | 244 | if (ret) |
243 | goto out_err_dev_shutdown; | 245 | goto out_err_dev_shutdown; |
diff --git a/drivers/crypto/qat/qat_common/adf_common_drv.h b/drivers/crypto/qat/qat_common/adf_common_drv.h index a8100a37ee0c..557ea361d385 100644 --- a/drivers/crypto/qat/qat_common/adf_common_drv.h +++ b/drivers/crypto/qat/qat_common/adf_common_drv.h | |||
@@ -67,7 +67,7 @@ | |||
67 | #define ADF_STATUS_AE_INITIALISED 4 | 67 | #define ADF_STATUS_AE_INITIALISED 4 |
68 | #define ADF_STATUS_AE_UCODE_LOADED 5 | 68 | #define ADF_STATUS_AE_UCODE_LOADED 5 |
69 | #define ADF_STATUS_AE_STARTED 6 | 69 | #define ADF_STATUS_AE_STARTED 6 |
70 | #define ADF_STATUS_ORPHAN_TH_RUNNING 7 | 70 | #define ADF_STATUS_PF_RUNNING 7 |
71 | #define ADF_STATUS_IRQ_ALLOCATED 8 | 71 | #define ADF_STATUS_IRQ_ALLOCATED 8 |
72 | 72 | ||
73 | enum adf_dev_reset_mode { | 73 | enum adf_dev_reset_mode { |
diff --git a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c index 5f1d863ae802..cd5f37dffe8a 100644 --- a/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c +++ b/drivers/crypto/qat/qat_common/adf_vf2pf_msg.c | |||
@@ -66,6 +66,7 @@ int adf_vf2pf_init(struct adf_accel_dev *accel_dev) | |||
66 | "Failed to send Init event to PF\n"); | 66 | "Failed to send Init event to PF\n"); |
67 | return -EFAULT; | 67 | return -EFAULT; |
68 | } | 68 | } |
69 | set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status); | ||
69 | return 0; | 70 | return 0; |
70 | } | 71 | } |
71 | EXPORT_SYMBOL_GPL(adf_vf2pf_init); | 72 | EXPORT_SYMBOL_GPL(adf_vf2pf_init); |
@@ -83,8 +84,9 @@ void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev) | |||
83 | u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM | | 84 | u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM | |
84 | (ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT)); | 85 | (ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT)); |
85 | 86 | ||
86 | if (adf_iov_putmsg(accel_dev, msg, 0)) | 87 | if (test_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status)) |
87 | dev_err(&GET_DEV(accel_dev), | 88 | if (adf_iov_putmsg(accel_dev, msg, 0)) |
88 | "Failed to send Shutdown event to PF\n"); | 89 | dev_err(&GET_DEV(accel_dev), |
90 | "Failed to send Shutdown event to PF\n"); | ||
89 | } | 91 | } |
90 | EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown); | 92 | EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown); |
diff --git a/drivers/crypto/qat/qat_common/adf_vf_isr.c b/drivers/crypto/qat/qat_common/adf_vf_isr.c index c3d501681466..5d45796576ee 100644 --- a/drivers/crypto/qat/qat_common/adf_vf_isr.c +++ b/drivers/crypto/qat/qat_common/adf_vf_isr.c | |||
@@ -135,6 +135,8 @@ static void adf_pf2vf_bh_handler(void *data) | |||
135 | dev_dbg(&GET_DEV(accel_dev), | 135 | dev_dbg(&GET_DEV(accel_dev), |
136 | "Restarting msg received from PF 0x%x\n", msg); | 136 | "Restarting msg received from PF 0x%x\n", msg); |
137 | 137 | ||
138 | clear_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status); | ||
139 | |||
138 | stop_data = kzalloc(sizeof(*stop_data), GFP_ATOMIC); | 140 | stop_data = kzalloc(sizeof(*stop_data), GFP_ATOMIC); |
139 | if (!stop_data) { | 141 | if (!stop_data) { |
140 | dev_err(&GET_DEV(accel_dev), | 142 | dev_err(&GET_DEV(accel_dev), |
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c index 1bf753244230..60df98632fa2 100644 --- a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c +++ b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | |||
@@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
238 | if (ret) | 238 | if (ret) |
239 | goto out_err_free_reg; | 239 | goto out_err_free_reg; |
240 | 240 | ||
241 | set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status); | ||
242 | |||
241 | ret = adf_dev_init(accel_dev); | 243 | ret = adf_dev_init(accel_dev); |
242 | if (ret) | 244 | if (ret) |
243 | goto out_err_dev_shutdown; | 245 | goto out_err_dev_shutdown; |