]> git.ipfire.org Git - people/ms/linux.git/commit
DMA-API: net: intel/ixgbe: fix 32-bit DMA mask handling
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 10 Jun 2013 11:47:42 +0000 (12:47 +0100)
committerJiri Slaby <jslaby@suse.cz>
Tue, 26 Aug 2014 12:12:11 +0000 (14:12 +0200)
commit40580423ec6a3428fc8741448af92b946df80f12
tree155739b8248daa532a43f37da4c2bc9888df7356
parentbbf0947cce5b50c9263ee21488c1d73b74b0cbbc
DMA-API: net: intel/ixgbe: fix 32-bit DMA mask handling

commit f5f2eda8049644a27af5fdf59c3766589358e435 upstream.

The fallback to 32-bit DMA mask is rather odd:
if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
    !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
pci_using_dac = 1;
} else {
err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
if (err) {
err = dma_set_coherent_mask(&pdev->dev,
    DMA_BIT_MASK(32));
if (err) {
dev_err(&pdev->dev,
"No usable DMA configuration, aborting\n");
goto err_dma;
}
}
pci_using_dac = 0;
}
This means we only set the coherent DMA mask in the fallback path if
the DMA mask set failed, which is silly.  This fixes it to set the
coherent DMA mask only if dma_set_mask() succeeded, and to error out
if either fails.

Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c