[dpdk-dev] [PATCH] net/ena: initialize PCI info in eth_ena_dev_init
David Harton (dharton)
dharton at cisco.com
Thu Dec 12 16:52:35 CET 2019
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at intel.com>
> Sent: Thursday, December 12, 2019 9:54 AM
> To: David Harton (dharton) <dharton at cisco.com>; dev at dpdk.org;
> mw at semihalf.com; mk at semihalf.com; gtzalik at amazon.com; evgenys at amazon.com;
> igorch at amazon.com
> Subject: Re: [dpdk-dev] [PATCH] net/ena: initialize PCI info in
> eth_ena_dev_init
>
> On 12/10/2019 10:37 PM, David Harton wrote:
> > Network drivers were originally modified to initialize PCI info with
> > commit eeefe73f0af1 ("drivers: copy PCI device info to ethdev data").
> > Modifying net/ena to conform.
> >
> > Signed-off-by: David Harton <dharton at cisco.com>
> > ---
> > drivers/net/ena/ena_ethdev.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/net/ena/ena_ethdev.c
> > b/drivers/net/ena/ena_ethdev.c index 7d4a3b225..4170cf749 100644
> > --- a/drivers/net/ena/ena_ethdev.c
> > +++ b/drivers/net/ena/ena_ethdev.c
> > @@ -1701,6 +1701,7 @@ static int eth_ena_dev_init(struct rte_eth_dev
> *eth_dev)
> > adapter->rte_dev = eth_dev;
> >
> > pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
> > + rte_eth_copy_pci_info(eth_dev, pci_dev);
> > adapter->pdev = pci_dev;
> >
> > PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
> >
>
> Hi David,
>
> Is it really needed, since it should be called by API already [1], what
> field in eth_dev was missing?
Hi Ferruh,
Great catch! I'm embarrassed.
In all honesty, I made this fix for our applications back for DPDK 16.07. At that time, the drv_name used to get initialized by rte_eth_copy_pci_info() and each driver was responsible for calling rte_eth_copy_pci_info() in their init functions. Our apps would crash for ena devices when we tried to reference the drv_name.
I just realized I had never upstreamed this private patch and pushed it along with some others recently made yesterday.
So, you're 100% right it is no longer needed. Probably all of the drivers should remove calling it in their init functions to remove this legacy/deprecated requirement.
Sorry for the noise...
Regards,
Dave
>
> [1]
> eth_ena_pci_probe()
> rte_eth_dev_pci_generic_probe(eth_ena_dev_init)
> rte_eth_dev_pci_allocate()
> rte_eth_copy_pci_info()
> eth_ena_dev_init()
More information about the dev
mailing list