Torsten Duwe 4868b1
From 3660f25186aff60fb7d2f5aba784dddf400aec99 Mon Sep 17 00:00:00 2001
Torsten Duwe 4868b1
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Torsten Duwe 4868b1
Date: Thu, 12 Aug 2021 09:18:15 +0100
Torsten Duwe 4868b1
Subject: [PATCH] crypto: qat - disable AER if an error occurs in probe
Torsten Duwe 4868b1
 functions
Torsten Duwe 4868b1
Git-commit: 3660f25186aff60fb7d2f5aba784dddf400aec99
Torsten Duwe 4868b1
Patch-mainline: v5.15-rc1
Torsten Duwe 4868b1
References: jsc#PED-1073
Torsten Duwe 4868b1
Torsten Duwe 4868b1
If an error occurs after a 'adf_enable_aer()' call, it must be undone by a
Torsten Duwe 4868b1
corresponding 'adf_disable_aer()' call, as already done in the remove
Torsten Duwe 4868b1
function.
Torsten Duwe 4868b1
Torsten Duwe 4868b1
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Torsten Duwe 4868b1
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Torsten Duwe 4868b1
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe 4868b1
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe 4868b1
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe 4868b1
Torsten Duwe 4868b1
---
Torsten Duwe 4868b1
 drivers/crypto/qat/qat_c3xxx/adf_drv.c    | 6 ++++--
Torsten Duwe 4868b1
 drivers/crypto/qat/qat_c62x/adf_drv.c     | 6 ++++--
Torsten Duwe 4868b1
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 6 ++++--
Torsten Duwe 4868b1
 3 files changed, 12 insertions(+), 6 deletions(-)
Torsten Duwe 4868b1
Torsten Duwe 4868b1
diff --git a/drivers/crypto/qat/qat_c3xxx/adf_drv.c b/drivers/crypto/qat/qat_c3xxx/adf_drv.c
Torsten Duwe 4868b1
index 2df26643dbc97..cc6e75dc60de9 100644
Torsten Duwe 4868b1
--- a/drivers/crypto/qat/qat_c3xxx/adf_drv.c
Torsten Duwe 4868b1
+++ b/drivers/crypto/qat/qat_c3xxx/adf_drv.c
Torsten Duwe 4868b1
@@ -201,12 +201,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
Torsten Duwe 4868b1
 	if (pci_save_state(pdev)) {
Torsten Duwe 4868b1
 		dev_err(&pdev->dev, "Failed to save pci state\n");
Torsten Duwe 4868b1
 		ret = -ENOMEM;
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 	}
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = qat_crypto_dev_config(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = adf_dev_init(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
@@ -222,6 +222,8 @@ out_err_dev_stop:
Torsten Duwe 4868b1
 	adf_dev_stop(accel_dev);
Torsten Duwe 4868b1
 out_err_dev_shutdown:
Torsten Duwe 4868b1
 	adf_dev_shutdown(accel_dev);
Torsten Duwe 4868b1
+out_err_disable_aer:
Torsten Duwe 4868b1
+	adf_disable_aer(accel_dev);
Torsten Duwe 4868b1
 out_err_free_reg:
Torsten Duwe 4868b1
 	pci_release_regions(accel_pci_dev->pci_dev);
Torsten Duwe 4868b1
 out_err_disable:
Torsten Duwe 4868b1
diff --git a/drivers/crypto/qat/qat_c62x/adf_drv.c b/drivers/crypto/qat/qat_c62x/adf_drv.c
Torsten Duwe 4868b1
index efdba841d720c..bf251dfe74b36 100644
Torsten Duwe 4868b1
--- a/drivers/crypto/qat/qat_c62x/adf_drv.c
Torsten Duwe 4868b1
+++ b/drivers/crypto/qat/qat_c62x/adf_drv.c
Torsten Duwe 4868b1
@@ -201,12 +201,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
Torsten Duwe 4868b1
 	if (pci_save_state(pdev)) {
Torsten Duwe 4868b1
 		dev_err(&pdev->dev, "Failed to save pci state\n");
Torsten Duwe 4868b1
 		ret = -ENOMEM;
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 	}
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = qat_crypto_dev_config(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = adf_dev_init(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
@@ -222,6 +222,8 @@ out_err_dev_stop:
Torsten Duwe 4868b1
 	adf_dev_stop(accel_dev);
Torsten Duwe 4868b1
 out_err_dev_shutdown:
Torsten Duwe 4868b1
 	adf_dev_shutdown(accel_dev);
Torsten Duwe 4868b1
+out_err_disable_aer:
Torsten Duwe 4868b1
+	adf_disable_aer(accel_dev);
Torsten Duwe 4868b1
 out_err_free_reg:
Torsten Duwe 4868b1
 	pci_release_regions(accel_pci_dev->pci_dev);
Torsten Duwe 4868b1
 out_err_disable:
Torsten Duwe 4868b1
diff --git a/drivers/crypto/qat/qat_dh895xcc/adf_drv.c b/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
Torsten Duwe 4868b1
index e1c167507157c..3976a81bd99b8 100644
Torsten Duwe 4868b1
--- a/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
Torsten Duwe 4868b1
+++ b/drivers/crypto/qat/qat_dh895xcc/adf_drv.c
Torsten Duwe 4868b1
@@ -201,12 +201,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
Torsten Duwe 4868b1
 	if (pci_save_state(pdev)) {
Torsten Duwe 4868b1
 		dev_err(&pdev->dev, "Failed to save pci state\n");
Torsten Duwe 4868b1
 		ret = -ENOMEM;
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 	}
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = qat_crypto_dev_config(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
-		goto out_err_free_reg;
Torsten Duwe 4868b1
+		goto out_err_disable_aer;
Torsten Duwe 4868b1
 
Torsten Duwe 4868b1
 	ret = adf_dev_init(accel_dev);
Torsten Duwe 4868b1
 	if (ret)
Torsten Duwe 4868b1
@@ -222,6 +222,8 @@ out_err_dev_stop:
Torsten Duwe 4868b1
 	adf_dev_stop(accel_dev);
Torsten Duwe 4868b1
 out_err_dev_shutdown:
Torsten Duwe 4868b1
 	adf_dev_shutdown(accel_dev);
Torsten Duwe 4868b1
+out_err_disable_aer:
Torsten Duwe 4868b1
+	adf_disable_aer(accel_dev);
Torsten Duwe 4868b1
 out_err_free_reg:
Torsten Duwe 4868b1
 	pci_release_regions(accel_pci_dev->pci_dev);
Torsten Duwe 4868b1
 out_err_disable:
Torsten Duwe 4868b1
-- 
Torsten Duwe 4868b1
2.35.3
Torsten Duwe 4868b1