[PATCH] Use pci_set_consistent_dma_mask in ixgb driver
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 <schwab@suse.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
43f2f10444
commit
c91e468a48
|
@ -357,18 +357,20 @@ ixgb_probe(struct pci_dev *pdev,
|
||||||
if((err = pci_enable_device(pdev)))
|
if((err = pci_enable_device(pdev)))
|
||||||
return err;
|
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;
|
pci_using_dac = 1;
|
||||||
} else {
|
} 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");
|
IXGB_ERR("No usable DMA configuration, aborting\n");
|
||||||
return err;
|
goto err_dma_mask;
|
||||||
}
|
}
|
||||||
pci_using_dac = 0;
|
pci_using_dac = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((err = pci_request_regions(pdev, ixgb_driver_name)))
|
if((err = pci_request_regions(pdev, ixgb_driver_name)))
|
||||||
return err;
|
goto err_request_regions;
|
||||||
|
|
||||||
pci_set_master(pdev);
|
pci_set_master(pdev);
|
||||||
|
|
||||||
|
@ -502,6 +504,9 @@ err_ioremap:
|
||||||
free_netdev(netdev);
|
free_netdev(netdev);
|
||||||
err_alloc_etherdev:
|
err_alloc_etherdev:
|
||||||
pci_release_regions(pdev);
|
pci_release_regions(pdev);
|
||||||
|
err_request_regions:
|
||||||
|
err_dma_mask:
|
||||||
|
pci_disable_device(pdev);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue