From 3901a038edf47a35665c57961e6620efdd01dbbd Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Thu, 11 Oct 2018 17:04:13 -0700 Subject: 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 --- src/plugins/dpdk/device/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/plugins/dpdk/device/init.c') diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 5479f81f281..086d322db18 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -278,7 +278,8 @@ dpdk_lib_init (dpdk_main_t * dm) dev_info.driver_name); continue; } - 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 */ { -- cgit 1.2.3-korg