From 0dcae66fd9cb47f4db64aba20a59d26e09e78fe4 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Wed, 1 Jul 2009 22:43:39 +0200 Subject: [PATCH] [SCSI] aacraid: Do not set DMA mask to 32 bit first if adapter only supports 31 Signed-off-by: Rolf Eike Beer Acked-by: Achim Leubner Signed-off-by: James Bottomley --- drivers/scsi/aacraid/linit.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 33898b61fdb5..cad6f9abaeb9 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c @@ -1091,6 +1091,7 @@ static int __devinit aac_probe_one(struct pci_dev *pdev, struct list_head *insert = &aac_devices; int error = -ENODEV; int unique_id = 0; + u64 dmamask; list_for_each_entry(aac, &aac_devices, entry) { if (aac->id > unique_id) @@ -1104,17 +1105,18 @@ static int __devinit aac_probe_one(struct pci_dev *pdev, goto out; error = -ENODEV; - if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) || - pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) - goto out_disable_pdev; /* * If the quirk31 bit is set, the adapter needs adapter * to driver communication memory to be allocated below 2gig */ if (aac_drivers[index].quirks & AAC_QUIRK_31BIT) - if (pci_set_dma_mask(pdev, DMA_BIT_MASK(31)) || - pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(31))) - goto out_disable_pdev; + dmamask = DMA_BIT_MASK(31); + else + dmamask = DMA_BIT_MASK(32); + + if (pci_set_dma_mask(pdev, dmamask) || + pci_set_consistent_dma_mask(pdev, dmamask)) + goto out_disable_pdev; pci_set_master(pdev); -- 2.39.5