Message ID | 3140001a-66eb-b770-e7b8-c5be71dbd41b@solarflare.com |
---|---|
State | Accepted |
Delegated to: | Netdev Driver Reviewers |
Headers | show |
Series | sfc: ethtool for EF100 and related improvements | expand |
On Mon, Sep 07, 2020 at 05:15:48PM +0100, Edward Cree wrote: > Christoph says[1] that dma_set_mask_and_coherent() is smart enough to > truncate the mask itself if it's too long. So we can get rid of our > "lop off one bit and retry" loop in efx_init_io(). > > [1]: https://www.spinics.net/lists/netdev/msg677266.html > > Signed-off-by: Edward Cree <ecree@solarflare.com> Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de>
diff --git a/drivers/net/ethernet/sfc/efx_common.c b/drivers/net/ethernet/sfc/efx_common.c index 9eda54e27cd4..80a23def96ad 100644 --- a/drivers/net/ethernet/sfc/efx_common.c +++ b/drivers/net/ethernet/sfc/efx_common.c @@ -1086,17 +1086,7 @@ int efx_init_io(struct efx_nic *efx, int bar, dma_addr_t dma_mask, pci_set_master(pci_dev); - /* Set the PCI DMA mask. Try all possibilities from our - * genuine mask down to 32 bits, because some architectures - * (e.g. x86_64 with iommu_sac_force set) will allow 40 bit - * masks event though they reject 46 bit masks. - */ - while (dma_mask > 0x7fffffffUL) { - rc = dma_set_mask_and_coherent(&pci_dev->dev, dma_mask); - if (rc == 0) - break; - dma_mask >>= 1; - } + rc = dma_set_mask_and_coherent(&pci_dev->dev, dma_mask); if (rc) { netif_err(efx, probe, efx->net_dev, "could not find a suitable DMA mask\n");
Christoph says[1] that dma_set_mask_and_coherent() is smart enough to truncate the mask itself if it's too long. So we can get rid of our "lop off one bit and retry" loop in efx_init_io(). [1]: https://www.spinics.net/lists/netdev/msg677266.html Signed-off-by: Edward Cree <ecree@solarflare.com> --- drivers/net/ethernet/sfc/efx_common.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)