>From 488fd699985f73d361d04d4788de48833c6442ca Mon Sep 17 00:00:00 2001 From: Prashant Sreedharan Date: Tue, 28 Apr 2015 11:32:56 -0700 Subject: [PATCH] tg3: Restrict DMA address to 31 bits for 5762 device --- drivers/net/ethernet/broadcom/tg3.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 069952f..e980c96 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -17707,6 +17707,8 @@ static int tg3_init_one(struct pci_dev *pdev, */ if (tg3_flag(tp, IS_5788)) persist_dma_mask = dma_mask = DMA_BIT_MASK(32); + else if (tg3_asic_rev(tp) == ASIC_REV_5762) + persist_dma_mask = dma_mask = DMA_BIT_MASK(31); else if (tg3_flag(tp, 40BIT_DMA_BUG)) { persist_dma_mask = dma_mask = DMA_BIT_MASK(40); #ifdef CONFIG_HIGHMEM @@ -17736,6 +17738,17 @@ static int tg3_init_one(struct pci_dev *pdev, "No usable DMA configuration, aborting\n"); goto err_out_apeunmap; } + } else { + err = pci_set_dma_mask(pdev, dma_mask); + if (!err) { + err = pci_set_consistent_dma_mask(pdev, + persist_dma_mask); + } + if (err) { + dev_err(&pdev->dev, + "No usable DMA configuration, aborting\n"); + goto err_out_apeunmap; + } } tg3_init_bufmgr_config(tp); -- 1.7.1