diff options
| author | Andreas Schwab <schwab@suse.de> | 2006-03-28 11:10:38 -0500 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-04-12 18:11:23 -0400 |
| commit | c91e468a48a2afd2a2b0c2e29a35d6b8c51ea682 (patch) | |
| tree | 402fe545765761341c744683b510b306c18887cb | |
| parent | 43f2f10444c008296cc8de68a72fd87b33b50452 (diff) | |
[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>
| -rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index f9f77e4f5965..cfd67d812f0d 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
| @@ -357,18 +357,20 @@ ixgb_probe(struct pci_dev *pdev, | |||
| 357 | if((err = pci_enable_device(pdev))) | 357 | if((err = pci_enable_device(pdev))) |
| 358 | return err; | 358 | return err; |
| 359 | 359 | ||
| 360 | if(!(err = pci_set_dma_mask(pdev, DMA_64BIT_MASK))) { | 360 | if(!(err = pci_set_dma_mask(pdev, DMA_64BIT_MASK)) && |
| 361 | !(err = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK))) { | ||
| 361 | pci_using_dac = 1; | 362 | pci_using_dac = 1; |
| 362 | } else { | 363 | } else { |
| 363 | if((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK))) { | 364 | if((err = pci_set_dma_mask(pdev, DMA_32BIT_MASK)) || |
| 365 | (err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK))) { | ||
| 364 | IXGB_ERR("No usable DMA configuration, aborting\n"); | 366 | IXGB_ERR("No usable DMA configuration, aborting\n"); |
| 365 | return err; | 367 | goto err_dma_mask; |
| 366 | } | 368 | } |
| 367 | pci_using_dac = 0; | 369 | pci_using_dac = 0; |
| 368 | } | 370 | } |
| 369 | 371 | ||
| 370 | if((err = pci_request_regions(pdev, ixgb_driver_name))) | 372 | if((err = pci_request_regions(pdev, ixgb_driver_name))) |
| 371 | return err; | 373 | goto err_request_regions; |
| 372 | 374 | ||
| 373 | pci_set_master(pdev); | 375 | pci_set_master(pdev); |
| 374 | 376 | ||
| @@ -502,6 +504,9 @@ err_ioremap: | |||
| 502 | free_netdev(netdev); | 504 | free_netdev(netdev); |
| 503 | err_alloc_etherdev: | 505 | err_alloc_etherdev: |
| 504 | pci_release_regions(pdev); | 506 | pci_release_regions(pdev); |
| 507 | err_request_regions: | ||
| 508 | err_dma_mask: | ||
| 509 | pci_disable_device(pdev); | ||
| 505 | return err; | 510 | return err; |
| 506 | } | 511 | } |
| 507 | 512 | ||
