netxen: fix dma mask update calculation
authorDhananjay Phadke <dhananjay@netxen.com>
Tue, 4 Aug 2009 10:39:03 +0000 (10:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 5 Aug 2009 17:21:58 +0000 (10:21 -0700)
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>
drivers/net/netxen/netxen_nic_main.c

index 3cd8cfcf627ba69fd5cedbe7a52a2f0765607848..70c05c4c0cab9550d80b0ed82dff5af993941be3 100644 (file)
@@ -260,7 +260,7 @@ nx_update_dma_mask(struct netxen_adapter *adapter)
        change = 0;
 
        shift = NXRD32(adapter, CRB_DMA_SHIFT);
-       if (shift >= 32)
+       if (shift > 32)
                return 0;
 
        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_cmask = pdev->dev.coherent_dma_mask;
 
-               mask = (1ULL<<(32+shift)) - 1;
+               mask = DMA_BIT_MASK(32+shift);
 
                err = pci_set_dma_mask(pdev, mask);
                if (err)