[dpdk-dev] [PATCH] app/test-pmd: fix rte_pci_tailq not initialized before used

David Marchand david.marchand at 6wind.com
Wed Mar 11 09:59:33 CET 2015


Hello Marvin,

I think this fix will break ivshmem init.
pci_init was moved when introducing ivshmem_init.

If you have a setup for this, can you check ivshmem init with your fix ?

Thanks.

-- 
David Marchand

On Wed, Mar 11, 2015 at 9:43 AM, Yong Liu <yong.liu at intel.com> wrote:

> 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
>
>


More information about the dev mailing list