Function rte_eal_pci_init will cast pci resource list and used for insert
probed device later. But all tailq initialized in function
rte_eal_tailqs_init, so rte_eal_pci_init must be called after it.

Signed-off-by: Marvin Liu <yong.liu at intel.com>

diff --git a/lib/librte_eal/linuxapp/eal/eal.c 
b/lib/librte_eal/linuxapp/eal/eal.c
index bd770cf..576f9f8 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -755,9 +755,6 @@ rte_eal_init(int argc, char **argv)

        rte_config_init();

-       if (rte_eal_pci_init() < 0)
-               rte_panic("Cannot init PCI\n");
-
 #ifdef RTE_LIBRTE_IVSHMEM
        if (rte_eal_ivshmem_init() < 0)
                rte_panic("Cannot init IVSHMEM\n");
@@ -792,6 +789,9 @@ rte_eal_init(int argc, char **argv)
        if (rte_eal_timer_init() < 0)
                rte_panic("Cannot init HPET or TSC timers\n");

+       if (rte_eal_pci_init() < 0)
+               rte_panic("Cannot init PCI\n");
+
        eal_check_mem_on_local_socket();

        rte_eal_mcfg_complete();
-- 
1.9.3

Reply via email to