[PATCH] scsi: fnic: Replace DMA mask of 64 bits with 47 bits

Karan Tilak Kumar posted 1 patch 1 week, 3 days ago
drivers/scsi/fnic/fnic.h      | 2 +-
drivers/scsi/fnic/fnic_main.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
[PATCH] scsi: fnic: Replace DMA mask of 64 bits with 47 bits
Posted by Karan Tilak Kumar 1 week, 3 days ago
Cisco VIC supports only 47 bits.
If the host sends DMA addresses that are greater than 47
bits, it causes work queue (WQ) errors in the VIC.

Co-developed-by: Dhanraj Jhawar <djhawar@cisco.com>
Signed-off-by: Dhanraj Jhawar <djhawar@cisco.com>
Co-developed-by: Sesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
Signed-off-by: Arulprabhu Ponnusamy <arulponn@cisco.com>
Tested-by: Karan Tilak Kumar <kartilak@cisco.com>
Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com>
---
 drivers/scsi/fnic/fnic.h      | 2 +-
 drivers/scsi/fnic/fnic_main.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/fnic/fnic.h b/drivers/scsi/fnic/fnic.h
index aa07189fb5fb..85ec6163ddab 100644
--- a/drivers/scsi/fnic/fnic.h
+++ b/drivers/scsi/fnic/fnic.h
@@ -39,7 +39,7 @@
 
 #define DRV_NAME		"fnic"
 #define DRV_DESCRIPTION		"Cisco FCoE HBA Driver"
-#define DRV_VERSION		"1.6.0.53"
+#define DRV_VERSION		"1.6.0.54"
 #define PFX			DRV_NAME ": "
 #define DFX                     DRV_NAME "%d: "
 
diff --git a/drivers/scsi/fnic/fnic_main.c b/drivers/scsi/fnic/fnic_main.c
index 460e03a55096..51e7c344ddc3 100644
--- a/drivers/scsi/fnic/fnic_main.c
+++ b/drivers/scsi/fnic/fnic_main.c
@@ -612,10 +612,10 @@ static int fnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	pci_set_master(pdev);
 
 	/* Query PCI controller on system for DMA addressing
-	 * limitation for the device.  Try 64-bit first, and
-	 * fail to 32-bit.
+	 * limitation for the device.  Try 47-bit first, and
+	 * fail to 32-bit. Cisco VIC supports 47 bits only.
 	 */
-	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(47));
 	if (err) {
 		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
-- 
2.28.0
Re: [PATCH] scsi: fnic: Replace DMA mask of 64 bits with 47 bits
Posted by Martin K. Petersen 4 days, 4 hours ago
On Fri, 13 May 2022 13:56:05 -0700, Karan Tilak Kumar wrote:

> Cisco VIC supports only 47 bits.
> If the host sends DMA addresses that are greater than 47
> bits, it causes work queue (WQ) errors in the VIC.
> 
> 

Applied to 5.19/scsi-queue, thanks!

[1/1] scsi: fnic: Replace DMA mask of 64 bits with 47 bits
      https://git.kernel.org/mkp/scsi/c/b559b99a5c08

-- 
Martin K. Petersen	Oracle Linux Engineering
Re: [PATCH] scsi: fnic: Replace DMA mask of 64 bits with 47 bits
Posted by Martin K. Petersen 6 days, 4 hours ago
Karan,

> Cisco VIC supports only 47 bits.  If the host sends DMA addresses that
> are greater than 47 bits, it causes work queue (WQ) errors in the VIC.

Applied to 5.19/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering