diff options
author | Dean Nelson <dnelson@redhat.com> | 2010-11-11 05:50:25 +0000 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2010-12-10 22:12:29 -0800 |
commit | 19a0b67afd174c4db261d587b5c67704dcd53c17 (patch) | |
tree | 05ac966305d5e51f486f949e56e4131c892a690c | |
parent | fa795e6b9c59a14c80a475428df7e4cb97396f47 (diff) | |
download | linux-3.10-19a0b67afd174c4db261d587b5c67704dcd53c17.tar.gz linux-3.10-19a0b67afd174c4db261d587b5c67704dcd53c17.tar.bz2 linux-3.10-19a0b67afd174c4db261d587b5c67704dcd53c17.zip |
e1000: fix return value not set on error
Dean noticed that 'err' wasn't being set when the "goto err_dma"
statement is executed in the following hunk from the commit. It's value
will be zero as a result of a successful call to e1000_init_hw_struct().
This patch changes the error condition to be correctly propagated.
CC: stable@kernel.org
Signed-off-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 06c7d1c6751..491bf2a1bab 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -971,11 +971,13 @@ static int __devinit e1000_probe(struct pci_dev *pdev, */ dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); pci_using_dac = 1; - } else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) { - dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); } else { - pr_err("No usable DMA config, aborting\n"); - goto err_dma; + err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); + if (err) { + pr_err("No usable DMA config, aborting\n"); + goto err_dma; + } + dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); } netdev->netdev_ops = &e1000_netdev_ops; |