The ixgb driver is using pci_alloc_consistent, thus is should also use
pci_set_consistent_dma_mask.  This allows the driver to work on SGI
systems.

In case of an error during probing it should also disable the device again.

Signed-off-by: Andreas Schwab <[EMAIL PROTECTED]>

--- linux-2.6.16/drivers/net/ixgb/ixgb_main.c.~1~       2006-03-20 
06:53:29.000000000 +0100
+++ linux-2.6.16/drivers/net/ixgb/ixgb_main.c   2006-03-28 18:05:40.000000000 
+0200
@@ -357,18 +357,20 @@ ixgb_probe(struct pci_dev *pdev,
        if((err = pci_enable_device(pdev)))
                return err;
 
-       if(!(err = pci_set_dma_mask(pdev, DMA_64BIT_MASK))) {
+       if(!(err = pci_set_dma_mask(pdev, DMA_64BIT_MASK)) &&
+          !(err = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK))) {
                pci_using_dac = 1;
        } else {
-               if((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK))) {
+               if((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK)) ||
+                  (err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK))) {
                        IXGB_ERR("No usable DMA configuration, aborting\n");
-                       return err;
+                       goto err_dma_mask;
                }
                pci_using_dac = 0;
        }
 
        if((err = pci_request_regions(pdev, ixgb_driver_name)))
-               return err;
+               goto err_request_regions;
 
        pci_set_master(pdev);
 
@@ -502,6 +504,9 @@ err_ioremap:
        free_netdev(netdev);
 err_alloc_etherdev:
        pci_release_regions(pdev);
+err_request_regions:
+err_dma_mask:
+       pci_disable_device(pdev);
        return err;
 }
 

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to