Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c91e468a authored by Andreas Schwab's avatar Andreas Schwab Committed by Jeff Garzik
Browse files

[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: default avatarAndreas Schwab <schwab@suse.de>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 43f2f104
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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;
}