aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device/cli.c
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2018-10-11 17:04:13 -0700
committerDamjan Marion <dmarion@me.com>2018-10-15 11:29:17 +0000
commit3901a038edf47a35665c57961e6620efdd01dbbd (patch)
tree080e2cfd4a3390c37551b05cb46242191003ac04 /src/plugins/dpdk/device/cli.c
parent59a829533c1345945dc1b6decc3afe29494e85cd (diff)
dpdk: only look at PCI information on PCI devices
The rte_device is use as a base type of all DPDK devices. It is not valid to use container_of to find PCI information unless the bus of the rte_device is pci. Otherwise, the pointer is looking at some other data, which may or may not be zero. This change introduces a helper function to get rte_pci_device pointer. If device is on PCI bus it returns pointer to rte_pci_device info, otherwise it returns NULL. Change-Id: Ia7446006bb93a7a54844969f3b3dd3b918890dfd Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'src/plugins/dpdk/device/cli.c')
-rw-r--r--src/plugins/dpdk/device/cli.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/dpdk/device/cli.c b/src/plugins/dpdk/device/cli.c
index 7e168afb64e..7e20f565a8c 100644
--- a/src/plugins/dpdk/device/cli.c
+++ b/src/plugins/dpdk/device/cli.c
@@ -68,10 +68,10 @@ get_hqos (u32 hw_if_index, u32 subport_id, dpdk_device_t ** xd,
rte_eth_dev_info_get ((*xd)->port_id, &dev_info);
- pci_dev = RTE_DEV_TO_PCI (dev_info.device);
+ pci_dev = dpdk_get_pci_device (&dev_info);
if (pci_dev)
- { /* bonded interface has no pci info */
+ {
vlib_pci_addr_t pci_addr;
pci_addr.domain = pci_dev->addr.domain;
@@ -1286,7 +1286,7 @@ set_dpdk_if_hqos_pktfield (vlib_main_t * vm, unformat_input_t * input,
rte_eth_dev_info_get (xd->port_id, &dev_info);
- pci_dev = RTE_DEV_TO_PCI (dev_info.device);
+ pci_dev = dpdk_get_pci_device (&dev_info);
if (pci_dev)
{ /* bonded interface has no pci info */
@@ -1481,7 +1481,7 @@ show_dpdk_if_hqos (vlib_main_t * vm, unformat_input_t * input,
rte_eth_dev_info_get (xd->port_id, &dev_info);
- pci_dev = RTE_DEV_TO_PCI (dev_info.device);
+ pci_dev = dpdk_get_pci_device (&dev_info);
if (pci_dev)
{ /* bonded interface has no pci info */