ath9k: make DMA memory consistent
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Fri, 14 Nov 2008 03:11:57 +0000 (19:11 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 25 Nov 2008 21:41:35 +0000 (16:41 -0500)
Make the DMAable mameory consistent with pci_set_consistent_dma_mask().
The DMA-mapping.txt Documentation recommends this but for PCI-X
considerations and on strange architecture like SGI SN2, not sure
why it would fix an issue but lets see if it does, just in case.

Before this, this driver was tested with x86_64 with about
7 GB of RAM, not sure if this is really needed.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath9k/main.c

index 9d64ef565c039625562c65669da23e8cb916fb23..3355ba4043e80c06c968a3df5d16fb4e40e4962f 100644 (file)
@@ -1591,9 +1591,18 @@ static int ath_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        if (pci_enable_device(pdev))
                return -EIO;
 
-       if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) {
+       ret =  pci_set_dma_mask(pdev, DMA_32BIT_MASK);
+
+       if (ret) {
                printk(KERN_ERR "ath9k: 32-bit DMA not available\n");
-               ret = -ENODEV;
+               goto bad;
+       }
+
+       ret = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
+
+       if (ret) {
+               printk(KERN_ERR "ath9k: 32-bit DMA consistent "
+                       "DMA enable faled\n");
                goto bad;
        }