From: Jon DeVree Date: Mon, 23 Nov 2015 15:13:53 +0000 (-0500) Subject: e1000: fix PCI device info with secondary process X-Git-Tag: spdx-start~8010 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=1be847dd4551e7860ae2a20611f4d6bd13076372;p=dpdk.git e1000: fix PCI device info with secondary process This fixes a bug added to em and igb drivers which causes the pci info seen by the primary process to become invalidated by secondary process startup. This call was added after the process type check in the other drivers. Fixes: eeefe73f0af1 ("drivers: copy PCI device info to ethdev data") Signed-off-by: Jon DeVree Acked-by: Bernard Iremonger --- diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c index 3e811098b2..66e8993306 100644 --- a/drivers/net/e1000/em_ethdev.c +++ b/drivers/net/e1000/em_ethdev.c @@ -244,8 +244,6 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev) pci_dev = eth_dev->pci_dev; - rte_eth_copy_pci_info(eth_dev, pci_dev); - eth_dev->dev_ops = ð_em_ops; eth_dev->rx_pkt_burst = (eth_rx_burst_t)ð_em_recv_pkts; eth_dev->tx_pkt_burst = (eth_tx_burst_t)ð_em_xmit_pkts; @@ -260,6 +258,8 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev) return 0; } + rte_eth_copy_pci_info(eth_dev, pci_dev); + hw->hw_addr = (void *)pci_dev->mem_resource[0].addr; hw->device_id = pci_dev->id.device_id; adapter->stopped = 0; diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index 88995b0ea8..0dc6357682 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -647,8 +647,6 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev) pci_dev = eth_dev->pci_dev; - rte_eth_copy_pci_info(eth_dev, pci_dev); - eth_dev->dev_ops = ð_igb_ops; eth_dev->rx_pkt_burst = ð_igb_recv_pkts; eth_dev->tx_pkt_burst = ð_igb_xmit_pkts; @@ -662,6 +660,8 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev) return 0; } + rte_eth_copy_pci_info(eth_dev, pci_dev); + hw->hw_addr= (void *)pci_dev->mem_resource[0].addr; igb_identify_hardware(eth_dev);