From: Stefan Roese Date: Mon, 16 Nov 2020 17:02:29 +0000 (+0100) Subject: net: e1000: Use virt_to_phys() instead of pci_virt_to_mem() X-Git-Url: http://git.dujemihanovic.xyz/%22http:/www.sics.se/static/%7B%7B%20%24image.RelPermalink%20%7D%7D?a=commitdiff_plain;h=919c8ede869caeb1a60fb596e759a2bf74030801;p=u-boot.git net: e1000: Use virt_to_phys() instead of pci_virt_to_mem() Using (dm_)pci_virt_to_mem() is incorrect to translate the virtual address in local DRAM to a physical address. The correct macro here is virt_to_phys() so switch to using this macro. As virt_to_bus() is now not used any more, this patch also removes both definitions (DM and non-DM). This issue was detected while testing the e1000 driver on the MIPS Octeon III platform, which needs address translation. Signed-off-by: Stefan Roese Cc: Joe Hershberger Cc: Aaron Williams Cc: Chandrakala Chavva --- diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 372f6c30ba..6d6bf8c827 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -45,12 +45,6 @@ tested on both gig copper and gig fiber boards #define TOUT_LOOP 100000 -#ifdef CONFIG_DM_ETH -#define virt_to_bus(devno, v) dm_pci_virt_to_mem(devno, (void *) (v)) -#else -#define virt_to_bus(devno, v) pci_virt_to_mem(devno, (void *) (v)) -#endif - #define E1000_DEFAULT_PCI_PBA 0x00000030 #define E1000_DEFAULT_PCIE_PBA 0x000a0026 @@ -5385,7 +5379,7 @@ static int _e1000_transmit(struct e1000_hw *hw, void *txpacket, int length) txp = tx_base + tx_tail; tx_tail = (tx_tail + 1) % 8; - txp->buffer_addr = cpu_to_le64(virt_to_bus(hw->pdev, nv_packet)); + txp->buffer_addr = cpu_to_le64(virt_to_phys(nv_packet)); txp->lower.data = cpu_to_le32(hw->txd_cmd | length); txp->upper.data = 0;