summaryrefslogtreecommitdiff
path: root/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
diff options
context:
space:
mode:
authorShashank Gupta <shashank.gupta@intel.com>2023-02-27 23:55:43 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2023-03-14 12:06:44 +0300
commit2b60f79c7b8105994f0daa46bb4e367fdc866b53 (patch)
tree19b39650c679ea6bd4e415f7ae3e35d1ae1a82df /drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
parent1bdc85550a2b59bb7f62ead7173134e66dd2d60e (diff)
downloadlinux-2b60f79c7b8105994f0daa46bb4e367fdc866b53.tar.xz
crypto: qat - replace state machine calls
The device state machine functions are unsafe and interdependent on each other. To perform a state transition, these shall be called in a specific order: * device up: adf_dev_init() -> adf_dev_start() * device down: adf_dev_stop() -> adf_dev_shutdown() Replace all the state machine functions used in the QAT driver with the safe wrappers adf_dev_up() and adf_dev_down(). Signed-off-by: Shashank Gupta <shashank.gupta@intel.com> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/qat/qat_dh895xccvf/adf_drv.c')
-rw-r--r--drivers/crypto/qat/qat_dh895xccvf/adf_drv.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
index c1485e702b3e..96854a1cd87e 100644
--- a/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
+++ b/drivers/crypto/qat/qat_dh895xccvf/adf_drv.c
@@ -173,20 +173,14 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* Completion for VF2PF request/response message exchange */
init_completion(&accel_dev->vf.msg_received);
- ret = adf_dev_init(accel_dev);
- if (ret)
- goto out_err_dev_shutdown;
-
- ret = adf_dev_start(accel_dev);
+ ret = adf_dev_up(accel_dev, false);
if (ret)
goto out_err_dev_stop;
return ret;
out_err_dev_stop:
- adf_dev_stop(accel_dev);
-out_err_dev_shutdown:
- adf_dev_shutdown(accel_dev);
+ adf_dev_down(accel_dev, false);
out_err_free_reg:
pci_release_regions(accel_pci_dev->pci_dev);
out_err_disable:
@@ -206,8 +200,7 @@ static void adf_remove(struct pci_dev *pdev)
return;
}
adf_flush_vf_wq(accel_dev);
- adf_dev_stop(accel_dev);
- adf_dev_shutdown(accel_dev);
+ adf_dev_down(accel_dev, false);
adf_cleanup_accel(accel_dev);
adf_cleanup_pci_dev(accel_dev);
kfree(accel_dev);