aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadeusz Struk <tadeusz.struk@intel.com>2016-04-15 13:37:59 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2016-04-18 06:49:51 -0400
commit25c6ffb249f612c56a48ce48a3887adf57b8f4bd (patch)
tree07ed8b28f2cff9088ed74eea049757cadce16393
parent02dc8d634b4f175d92aa8b0b217eb0e4db1a0c3b (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.c2
-rw-r--r--drivers/crypto/qat/qat_c62xvf/adf_drv.c2
-rw-r--r--drivers/crypto/qat/qat_common/adf_common_drv.h2
-rw-r--r--drivers/crypto/qat/qat_common/adf_vf2pf_msg.c8
-rw-r--r--drivers/crypto/qat/qat_common/adf_vf_isr.c2
-rw-r--r--drivers/crypto/qat/qat_dh895xccvf/adf_drv.c2
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
73enum adf_dev_reset_mode { 73enum 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}
71EXPORT_SYMBOL_GPL(adf_vf2pf_init); 72EXPORT_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}
90EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown); 92EXPORT_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;