diff options
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
| -rw-r--r-- | drivers/scsi/aacraid/linit.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 33898b61fdb..cad6f9abaeb 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);  |