Skip to content

Commit

Permalink
crypto: qat - check if PF is running
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tadeusz Struk authored and Herbert Xu committed Apr 18, 2016
1 parent 02dc8d6 commit 25c6ffb
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 4 deletions.
2 changes: 2 additions & 0 deletions drivers/crypto/qat/qat_c3xxxvf/adf_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret)
goto out_err_free_reg;

set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);

ret = adf_dev_init(accel_dev);
if (ret)
goto out_err_dev_shutdown;
Expand Down
2 changes: 2 additions & 0 deletions drivers/crypto/qat/qat_c62xvf/adf_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret)
goto out_err_free_reg;

set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);

ret = adf_dev_init(accel_dev);
if (ret)
goto out_err_dev_shutdown;
Expand Down
2 changes: 1 addition & 1 deletion drivers/crypto/qat/qat_common/adf_common_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
#define ADF_STATUS_AE_INITIALISED 4
#define ADF_STATUS_AE_UCODE_LOADED 5
#define ADF_STATUS_AE_STARTED 6
#define ADF_STATUS_ORPHAN_TH_RUNNING 7
#define ADF_STATUS_PF_RUNNING 7
#define ADF_STATUS_IRQ_ALLOCATED 8

enum adf_dev_reset_mode {
Expand Down
8 changes: 5 additions & 3 deletions drivers/crypto/qat/qat_common/adf_vf2pf_msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ int adf_vf2pf_init(struct adf_accel_dev *accel_dev)
"Failed to send Init event to PF\n");
return -EFAULT;
}
set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);
return 0;
}
EXPORT_SYMBOL_GPL(adf_vf2pf_init);
Expand All @@ -83,8 +84,9 @@ void adf_vf2pf_shutdown(struct adf_accel_dev *accel_dev)
u32 msg = (ADF_VF2PF_MSGORIGIN_SYSTEM |
(ADF_VF2PF_MSGTYPE_SHUTDOWN << ADF_VF2PF_MSGTYPE_SHIFT));

if (adf_iov_putmsg(accel_dev, msg, 0))
dev_err(&GET_DEV(accel_dev),
"Failed to send Shutdown event to PF\n");
if (test_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status))
if (adf_iov_putmsg(accel_dev, msg, 0))
dev_err(&GET_DEV(accel_dev),
"Failed to send Shutdown event to PF\n");
}
EXPORT_SYMBOL_GPL(adf_vf2pf_shutdown);
2 changes: 2 additions & 0 deletions drivers/crypto/qat/qat_common/adf_vf_isr.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ static void adf_pf2vf_bh_handler(void *data)
dev_dbg(&GET_DEV(accel_dev),
"Restarting msg received from PF 0x%x\n", msg);

clear_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);

stop_data = kzalloc(sizeof(*stop_data), GFP_ATOMIC);
if (!stop_data) {
dev_err(&GET_DEV(accel_dev),
Expand Down
2 changes: 2 additions & 0 deletions drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (ret)
goto out_err_free_reg;

set_bit(ADF_STATUS_PF_RUNNING, &accel_dev->status);

ret = adf_dev_init(accel_dev);
if (ret)
goto out_err_dev_shutdown;
Expand Down

0 comments on commit 25c6ffb

Please sign in to comment.