Skip to contentSkip to conversation

crypto: qat - Fixes and clean-ups

PATCH In review Christophe JAILLET 2 participants 6 messages Jul 11, 2021 – Jul 12, 2021

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover crypto: qat - Fixes and clean-ups

The only link between these 3 patches are that they are all related to 'drivers/crypto/qat'.

Christophe JAILLET (3):
crypto: qat - Simplify code and axe the use of a deprecated API
crypto: qat - Disable AER if an error occurs in probe functions
crypto: qat - Fix a typo in a comment

 drivers/crypto/qat/qat_4xxx/adf_drv.c       |  8 ++------
 drivers/crypto/qat/qat_c3xxx/adf_drv.c      | 15 ++++++---------
 drivers/crypto/qat/qat_c3xxxvf/adf_drv.c    |  9 ++-------
 drivers/crypto/qat/qat_c62x/adf_drv.c       | 15 ++++++---------
 drivers/crypto/qat/qat_c62xvf/adf_drv.c     |  9 ++-------
 drivers/crypto/qat/qat_common/adf_aer.c     |  2 +-
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c   | 15 ++++++---------
 drivers/crypto/qat/qat_dh895xccvf/adf_drv.c |  9 ++-------
 8 files changed, 27 insertions(+), 55 deletions(-)
Signature · 1 line
2.30.2
#1 lore raw

PATCH 1/3 crypto: qat - Simplify code and axe the use of a deprecated API

The wrappers in include/linux/pci-dma-compat.h should go away.

Replace 'pci_set_dma_mask/pci_set_consistent_dma_mask' by an equivalent and less verbose 'dma_set_mask_and_coherent()' call.

---
If needed, see post from Christoph Hellwig on the kernel-janitors ML:
https://marc.info/?l=kernel-janitors&m=158745678307186&w=4

We could also reduce indentation by merging the 2 'if' together. If this is the preferred style, I'll send a v2.

---
 drivers/crypto/qat/qat_4xxx/adf_drv.c       | 8 ++------
 drivers/crypto/qat/qat_c3xxx/adf_drv.c      | 9 ++-------
 drivers/crypto/qat/qat_c3xxxvf/adf_drv.c    | 9 ++-------
 drivers/crypto/qat/qat_c62x/adf_drv.c       | 9 ++-------
 drivers/crypto/qat/qat_c62xvf/adf_drv.c     | 9 ++-------
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c   | 9 ++-------
 drivers/crypto/qat/qat_dh895xccvf/adf_drv.c | 9 ++-------
 7 files changed, 14 insertions(+), 48 deletions(-)
drivers/crypto/qat/qat_4xxx/adf_drv.c +2 -6
index a8805c815d16..f2b6c0ca039a 100644
@@ -221,16 +221,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* Set DMA identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration.\n");
 			ret = -EFAULT;
 			goto out_err;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	/* Get accelerator capabilities mask */
drivers/crypto/qat/qat_c3xxx/adf_drv.c +2 -7
index 7fb3343ae8b0..cc4ed61478a8 100644
@@ -159,17 +159,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_C3XXX_DEVICE_NAME)) {
drivers/crypto/qat/qat_c3xxxvf/adf_drv.c +2 -7
index 067ca5e17d38..e271da064266 100644
@@ -141,17 +141,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_C3XXXVF_DEVICE_NAME)) {
drivers/crypto/qat/qat_c62x/adf_drv.c +2 -7
index 1f5de442e1e6..5e2fc0c1a759 100644
@@ -159,17 +159,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_C62X_DEVICE_NAME)) {
drivers/crypto/qat/qat_c62xvf/adf_drv.c +2 -7
index 51ea88c0b17d..8fa5660fe654 100644
@@ -141,17 +141,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_C62XVF_DEVICE_NAME)) {
drivers/crypto/qat/qat_dh895xcc/adf_drv.c +2 -7
index a9ec4357144c..d0bd18e65104 100644
@@ -159,17 +159,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_DH895XCC_DEVICE_NAME)) {
drivers/crypto/qat/qat_dh895xccvf/adf_drv.c +2 -7
index 29999da716cc..ce5eab45218e 100644
@@ -141,17 +141,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 
 	/* set dma identifier */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		if ((pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) {
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 			dev_err(&pdev->dev, "No usable DMA configuration\n");
 			ret = -EFAULT;
 			goto out_err_disable;
-		} else {
-			pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
 		}
-
-	} else {
-		pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
 	}
 
 	if (pci_request_regions(pdev, ADF_DH895XCCVF_DEVICE_NAME)) {
Signature · 1 line
2.30.2
#2 lore raw

Re: [PATCH 1/3] crypto: qat - Simplify code and axe the use of a deprecated API

Quoted 7 lines · Christophe JAILLET

The wrappers in include/linux/pci-dma-compat.h should go away.

Replace 'pci_set_dma_mask/pci_set_consistent_dma_mask' by an equivalent and less verbose 'dma_set_mask_and_coherent()' call.

If needed, see post from Christoph Hellwig on the kernel-janitors ML:

   https://marc.info/?l=kernel-janitors&m=158745678307186&w=4

See his another (recent) mail here: https://www.spinics.net/lists/kernel/msg3967232.html...

drivers/crypto/qat/qat_4xxx/adf_drv.c static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)

Quoted 3 lines
drivers/crypto/qat/qat_4xxx/adf_drv.c +2 -0
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
 
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {

...and drop this part from all entries completely.

Quoted 17 lines
(quoted diff) +12 -0
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
 
+	if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
+		if ((dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))) {
Signature · 2 lines
With Best Regards,
Andy Shevchenko
#3 lore raw

PATCH 2/3 crypto: qat - Disable AER if an error occurs in probe functions

In reply to Christophe JAILLET

If an error occurs after a 'adf_enable_aer()' call, it must be undone by a corresponding 'adf_disable_aer()' call, as already done in the remove function.

---
 drivers/crypto/qat/qat_c3xxx/adf_drv.c    | 6 ++++--
 drivers/crypto/qat/qat_c62x/adf_drv.c     | 6 ++++--
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)
drivers/crypto/qat/qat_c3xxx/adf_drv.c +4 -2
index cc4ed61478a8..aa5078177e5d 100644
@@ -203,12 +203,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (pci_save_state(pdev)) {
 		dev_err(&pdev->dev, "Failed to save pci state\n");
 		ret = -ENOMEM;
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 	}
 
 	ret = qat_crypto_dev_config(accel_dev);
 	if (ret)
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 
 	ret = adf_dev_init(accel_dev);
 	if (ret)
@@ -224,6 +224,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adf_dev_stop(accel_dev);
 out_err_dev_shutdown:
 	adf_dev_shutdown(accel_dev);
+out_err_disable_aer:
+	adf_disable_aer(accel_dev);
 out_err_free_reg:
 	pci_release_regions(accel_pci_dev->pci_dev);
 out_err_disable:
drivers/crypto/qat/qat_c62x/adf_drv.c +4 -2
index 5e2fc0c1a759..54ab8291be73 100644
@@ -203,12 +203,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (pci_save_state(pdev)) {
 		dev_err(&pdev->dev, "Failed to save pci state\n");
 		ret = -ENOMEM;
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 	}
 
 	ret = qat_crypto_dev_config(accel_dev);
 	if (ret)
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 
 	ret = adf_dev_init(accel_dev);
 	if (ret)
@@ -224,6 +224,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adf_dev_stop(accel_dev);
 out_err_dev_shutdown:
 	adf_dev_shutdown(accel_dev);
+out_err_disable_aer:
+	adf_disable_aer(accel_dev);
 out_err_free_reg:
 	pci_release_regions(accel_pci_dev->pci_dev);
 out_err_disable:
drivers/crypto/qat/qat_dh895xcc/adf_drv.c +4 -2
index d0bd18e65104..507663bc5d54 100644
@@ -203,12 +203,12 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (pci_save_state(pdev)) {
 		dev_err(&pdev->dev, "Failed to save pci state\n");
 		ret = -ENOMEM;
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 	}
 
 	ret = qat_crypto_dev_config(accel_dev);
 	if (ret)
-		goto out_err_free_reg;
+		goto out_err_disable_aer;
 
 	ret = adf_dev_init(accel_dev);
 	if (ret)
@@ -224,6 +224,8 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	adf_dev_stop(accel_dev);
 out_err_dev_shutdown:
 	adf_dev_shutdown(accel_dev);
+out_err_disable_aer:
+	adf_disable_aer(accel_dev);
 out_err_free_reg:
 	pci_release_regions(accel_pci_dev->pci_dev);
 out_err_disable:
Signature · 1 line
2.30.2
#4 lore raw

PATCH 3/3 crypto: qat - Fix a typo in a comment

In reply to Christophe JAILLET

s/Enable/Disable/ when describing 'adf_disable_aer()'

---
 drivers/crypto/qat/qat_common/adf_aer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/crypto/qat/qat_common/adf_aer.c +1 -1
index d2ae293d0df6..ed3e40bc56eb 100644
@@ -194,7 +194,7 @@ int adf_enable_aer(struct adf_accel_dev *accel_dev)
 EXPORT_SYMBOL_GPL(adf_enable_aer);
 
 /**
- * adf_disable_aer() - Enable Advance Error Reporting for acceleration device
+ * adf_disable_aer() - Disable Advance Error Reporting for acceleration device
  * @accel_dev:  Pointer to acceleration device.
  *
  * Function disables PCI Advance Error Reporting for the
Signature · 1 line
2.30.2
Reviewed-by on the v1 series
#5 lore raw
In reply to Christophe JAILLET
Quoted 2 lines · Christophe JAILLET

The only link between these 3 patches are that they are all related to 'drivers/crypto/qat'.

Entire series looks good after addressing comment against patch 1. Feel free to add

Quoted 18 lines

Christophe JAILLET (3):
crypto: qat - Simplify code and axe the use of a deprecated API
crypto: qat - Disable AER if an error occurs in probe functions
crypto: qat - Fix a typo in a comment

 drivers/crypto/qat/qat_4xxx/adf_drv.c       |  8 ++------
 drivers/crypto/qat/qat_c3xxx/adf_drv.c      | 15 ++++++---------
 drivers/crypto/qat/qat_c3xxxvf/adf_drv.c    |  9 ++-------
 drivers/crypto/qat/qat_c62x/adf_drv.c       | 15 ++++++---------
 drivers/crypto/qat/qat_c62xvf/adf_drv.c     |  9 ++-------
 drivers/crypto/qat/qat_common/adf_aer.c     |  2 +-
 drivers/crypto/qat/qat_dh895xcc/adf_drv.c   | 15 ++++++---------
 drivers/crypto/qat/qat_dh895xccvf/adf_drv.c |  9 ++-------
 8 files changed, 27 insertions(+), 55 deletions(-)
Signature · 1 line
2.30.2
Signature · 2 lines
With Best Regards,
Andy Shevchenko