diff mbox series

scsi: qla1280: set 64bit coherent mask

Message ID 20190109140902.21638-1-tbogendoerfer@suse.de (mailing list archive)
State Mainlined
Commit 4a01ab60f55041b1ccc760e43258a5b3aeeca1bc
Headers show
Series scsi: qla1280: set 64bit coherent mask | expand

Commit Message

Thomas Bogendoerfer Jan. 9, 2019, 2:09 p.m. UTC
After Commit 54aed4dd3526 ("MIPS: IP27: use dma_direct_ops") qla1280 driver
failed on SGI IP27 machines with

qla1280: QLA1040 found on PCI bus 0, dev 0
qla1280 0000:00:00.0: enabling device (0006 -> 0007)
qla1280: Failed to get request memory
qla1280: probe of 0000:00:00.0 failed with error -12

Reason is that SGI IP27 always generates 64bit DMA addresses and has
no fallback mode for 32bit DMA addresses implemented. QLA1280
supports 64bit addressing for all DMA accesses so setting coherent mask
to 64bit fixes the issue.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/scsi/qla1280.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Martin K. Petersen Jan. 12, 2019, 3:31 a.m. UTC | #1
Thomas,

> Reason is that SGI IP27 always generates 64bit DMA addresses and has
> no fallback mode for 32bit DMA addresses implemented. QLA1280
> supports 64bit addressing for all DMA accesses so setting coherent mask
> to 64bit fixes the issue.

Applied to 5.0/scsi-fixes, thanks!
diff mbox series

Patch

diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index a414f51302b7..6856dfdfa473 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -4248,7 +4248,7 @@  qla1280_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 	ha->devnum = devnum;	/* specifies microcode load address */
 
 #ifdef QLA_64BIT_PTR
-	if (dma_set_mask(&ha->pdev->dev, DMA_BIT_MASK(64))) {
+	if (dma_set_mask_and_coherent(&ha->pdev->dev, DMA_BIT_MASK(64))) {
 		if (dma_set_mask(&ha->pdev->dev, DMA_BIT_MASK(32))) {
 			printk(KERN_WARNING "scsi(%li): Unable to set a "
 			       "suitable DMA mask - aborting\n", ha->host_no);