netxen: fix dma mask update calculation

Fix dma mask calculation that caps at 63-bit addressing even
when firmware advertises full 64-bit support.

Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Dhananjay Phadke 2009-08-04 10:39:03 +00:00 committed by David S. Miller
parent 0bf52b9817
commit f60f785679

View file

@ -260,7 +260,7 @@ nx_update_dma_mask(struct netxen_adapter *adapter)
change = 0; change = 0;
shift = NXRD32(adapter, CRB_DMA_SHIFT); shift = NXRD32(adapter, CRB_DMA_SHIFT);
if (shift >= 32) if (shift > 32)
return 0; return 0;
if (NX_IS_REVISION_P3(adapter->ahw.revision_id) && (shift > 9)) if (NX_IS_REVISION_P3(adapter->ahw.revision_id) && (shift > 9))
@ -272,7 +272,7 @@ nx_update_dma_mask(struct netxen_adapter *adapter)
old_mask = pdev->dma_mask; old_mask = pdev->dma_mask;
old_cmask = pdev->dev.coherent_dma_mask; old_cmask = pdev->dev.coherent_dma_mask;
mask = (1ULL<<(32+shift)) - 1; mask = DMA_BIT_MASK(32+shift);
err = pci_set_dma_mask(pdev, mask); err = pci_set_dma_mask(pdev, mask);
if (err) if (err)