From: Jayamohan Kallickal <[email protected]>

 Setting DMA bit mask 64 and roll back to 32 if not supported.

Signed-off-by: Minh Tran <[email protected]>
Signed-off-by: Jayamohan Kallickal <[email protected]>
---
 drivers/scsi/be2iscsi/be_main.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index d9bd4b9..dd7eb12 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -681,8 +681,19 @@ static int beiscsi_enable_pci(struct pci_dev *pcidev)
        }
 
        pci_set_master(pcidev);
-       if (pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64))) {
-               ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(32));
+       ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
+       if (ret) {
+               ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(32));
+               if (ret) {
+                       dev_err(&pcidev->dev, "Could not set PCI DMA Mask\n");
+                       pci_disable_device(pcidev);
+                       return ret;
+               } else {
+                       ret = pci_set_consistent_dma_mask(pcidev,
+                                                         DMA_BIT_MASK(32));
+               }
+       } else {
+               ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64));
                if (ret) {
                        dev_err(&pcidev->dev, "Could not set PCI DMA Mask\n");
                        pci_disable_device(pcidev);
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to