提交 c91e468a 编写于 作者: A Andreas Schwab 提交者: Jeff Garzik

[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: NAndreas Schwab <schwab@suse.de>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 43f2f104
......@@ -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 @@ ixgb_probe(struct pci_dev *pdev,
free_netdev(netdev);
err_alloc_etherdev:
pci_release_regions(pdev);
err_request_regions:
err_dma_mask:
pci_disable_device(pdev);
return err;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册