]> git.droids-corp.org - dpdk.git/commitdiff
drivers: copy PCI device info to ethdev data
authorBernard Iremonger <bernard.iremonger@intel.com>
Tue, 3 Nov 2015 13:01:56 +0000 (13:01 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 3 Nov 2015 17:39:26 +0000 (18:39 +0100)
Use new function rte_eth_copy_pci_info.
Copy device info for the following pdevs:

bnx2x
cxgbe
e1000
enic
fm10k
i40e
ixgbe
mlx4
mlx5
virtio
vmxnet3

Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
13 files changed:
drivers/net/bnx2x/bnx2x_ethdev.c
drivers/net/cxgbe/cxgbe_ethdev.c
drivers/net/e1000/em_ethdev.c
drivers/net/e1000/igb_ethdev.c
drivers/net/enic/enic_ethdev.c
drivers/net/fm10k/fm10k_ethdev.c
drivers/net/i40e/i40e_ethdev.c
drivers/net/i40e/i40e_ethdev_vf.c
drivers/net/ixgbe/ixgbe_ethdev.c
drivers/net/mlx4/mlx4.c
drivers/net/mlx5/mlx5.c
drivers/net/virtio/virtio_ethdev.c
drivers/net/vmxnet3/vmxnet3_ethdev.c

index 09b5920514607773f2dd83dc10aea53f12cdb921..36779eaedf2b555bd02a9bcc8a1ada29c64b177d 100644 (file)
@@ -419,6 +419,9 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
 
        eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
        pci_dev = eth_dev->pci_dev;
+
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        sc = eth_dev->data->dev_private;
        sc->pcie_bus    = pci_dev->addr.bus;
        sc->pcie_device = pci_dev->addr.devid;
index 920e071695365fceb48d7f40bb4eeefe1b866222..788464252bd4cfda7774e109d64ac60ad56b8852 100644 (file)
@@ -801,6 +801,9 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
                return 0;
 
        pci_dev = eth_dev->pci_dev;
+
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
        adapter = rte_zmalloc(name, sizeof(*adapter), 0);
        if (!adapter)
index a009bc25531ba5356c4333a7d3512fce52d0d9cf..500985d7d044c796ca4b85f405fc69bc23a57b81 100644 (file)
@@ -243,6 +243,9 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
                E1000_DEV_PRIVATE_TO_VFTA(eth_dev->data->dev_private);
 
        pci_dev = eth_dev->pci_dev;
+
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        eth_dev->dev_ops = &eth_em_ops;
        eth_dev->rx_pkt_burst = (eth_rx_burst_t)&eth_em_recv_pkts;
        eth_dev->tx_pkt_burst = (eth_tx_burst_t)&eth_em_xmit_pkts;
index 97ca3c0280a417d57b31901122552751e662bcd3..cd7f7c1c085d8b9d996f8a51a04b7523fa3bcef1 100644 (file)
@@ -637,6 +637,9 @@ eth_igb_dev_init(struct rte_eth_dev *eth_dev)
        uint32_t ctrl_ext;
 
        pci_dev = eth_dev->pci_dev;
+
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        eth_dev->dev_ops = &eth_igb_ops;
        eth_dev->rx_pkt_burst = &eth_igb_recv_pkts;
        eth_dev->tx_pkt_burst = &eth_igb_xmit_pkts;
@@ -845,6 +848,8 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
 
        pci_dev = eth_dev->pci_dev;
 
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        hw->device_id = pci_dev->id.device_id;
        hw->vendor_id = pci_dev->id.vendor_id;
        hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
index f8f7817b7370c44e72e1b85316541ef163528720..1e1a5da7971d2817578a360480c3e2394ef68939 100644 (file)
@@ -603,6 +603,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
        eth_dev->tx_pkt_burst = &enicpmd_xmit_pkts;
 
        pdev = eth_dev->pci_dev;
+       rte_eth_copy_pci_info(eth_dev, pdev);
        enic->pdev = pdev;
        addr = &pdev->addr;
 
index e9a9b891484eeea1acc3149b8ef7039d7219bd87..5fc1e58368c22d6f3df47906e5a758ad0cbb5e9b 100644 (file)
@@ -2510,6 +2510,8 @@ eth_fm10k_dev_init(struct rte_eth_dev *dev)
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return 0;
 
+       rte_eth_copy_pci_info(dev, dev->pci_dev);
+
        macvlan = FM10K_DEV_PRIVATE_TO_MACVLAN(dev->data->dev_private);
        memset(macvlan, 0, sizeof(*macvlan));
        /* Vendor and Device ID need to be set before init of shared code */
index 5a9f11d54810431ea1ea85945519d71dc058d117..144e5661715b87bce00fb5190cc50c366ec500d2 100644 (file)
@@ -570,6 +570,9 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
                return 0;
        }
        pci_dev = dev->pci_dev;
+
+       rte_eth_copy_pci_info(dev, pci_dev);
+
        pf->adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
        pf->adapter->eth_dev = dev;
        pf->dev_data = dev->data;
index 57ea8b6ed0640bc8d7284f1c5573775ab2de7b3f..a6f43735343eab19448fb84b5815b04d6bdad7e9 100644 (file)
@@ -1288,6 +1288,8 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
                return 0;
        }
 
+       rte_eth_copy_pci_info(eth_dev, eth_dev->pci_dev);
+
        hw->vendor_id = eth_dev->pci_dev->id.vendor_id;
        hw->device_id = eth_dev->pci_dev->id.device_id;
        hw->subsystem_vendor_id = eth_dev->pci_dev->id.subsystem_vendor_id;
index 52c2fdb21359ecc7d7fc0151cda6053b28c1d4ff..25966ef5cd30064f48efbfdc070e1a1a6d0625ad 100644 (file)
@@ -983,6 +983,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
        }
        pci_dev = eth_dev->pci_dev;
 
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        /* Vendor and Device ID need to be set before init of shared code */
        hw->device_id = pci_dev->id.device_id;
        hw->vendor_id = pci_dev->id.vendor_id;
@@ -1251,6 +1253,8 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 
        pci_dev = eth_dev->pci_dev;
 
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        hw->device_id = pci_dev->id.device_id;
        hw->vendor_id = pci_dev->id.vendor_id;
        hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
index 691e0e58e9ba911b554e89bb63a6eae4df8d39a8..4198c046e045266f831dc3ceb3a42f9b036c230b 100644 (file)
@@ -5138,6 +5138,9 @@ mlx4_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 
                eth_dev->data->dev_private = priv;
                eth_dev->pci_dev = pci_dev;
+
+               rte_eth_copy_pci_info(eth_dev, pci_dev);
+
                eth_dev->driver = &mlx4_driver;
                eth_dev->data->rx_mbuf_alloc_failed = 0;
                eth_dev->data->mtu = ETHER_MTU;
index 5a9526069c24b0b1664ea3ce452c60167d60a624..69c58071ac9c72016a7bcf492dbe51390f742f03 100644 (file)
@@ -450,6 +450,9 @@ mlx5_pci_devinit(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
 
                eth_dev->data->dev_private = priv;
                eth_dev->pci_dev = pci_dev;
+
+               rte_eth_copy_pci_info(eth_dev, pci_dev);
+
                eth_dev->driver = &mlx5_driver;
                eth_dev->data->rx_mbuf_alloc_failed = 0;
                eth_dev->data->mtu = ETHER_MTU;
index 6001108cbdf8a18ef14eeb78e4d369f4db944f1f..74c00ee37ea8ea0a4c00f1222f2a3d705eed9442 100644 (file)
@@ -1288,6 +1288,9 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
        }
 
        pci_dev = eth_dev->pci_dev;
+
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        if (virtio_resource_init(pci_dev) < 0)
                return -1;
 
index 3745b7df9287792091f16975b60faeac53075929..bcb4c9d4f4a53d8cb80d96898fd13221a0da038a 100644 (file)
@@ -235,6 +235,8 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return 0;
 
+       rte_eth_copy_pci_info(eth_dev, pci_dev);
+
        /* Vendor and Device ID need to be set before init of shared code */
        hw->device_id = pci_dev->id.device_id;
        hw->vendor_id = pci_dev->id.vendor_id;