[dpdk-dev] [PATCH v1] drivers/net/ena: Copy PCI info to rte_eth_dev

Dey, Souvik sodey at rbbn.com
Wed Jan 17 21:49:11 CET 2018


Hi Yigit,
	I was testing with 16.11.2 dpdk version did found that few data were missing in the rte_eth_dev like the driver.name. Then tried to update my stream and check the handling and found the same missing. So raised the below patch. Now on double checking it looks like my pull from master failed and due to that I missed the below flow. 
 Yes, I cross checked and all the data is getting populated properly in the rte_eth_dev structure from the rte_pci_device. The below is not needed any more and can be removed. 
Thanks for pointing it out.

--
Regards,
Souvik


-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ferruh Yigit
Sent: Tuesday, January 16, 2018 2:17 PM
To: Dey, Souvik <sodey at rbbn.com>; jan at semihalf.com; jpa at semihalf.com; netanel at amazon.com; evgenys at amazon.com
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH v1] drivers/net/ena: Copy PCI info to rte_eth_dev

On 1/16/2018 7:06 PM, sodey at rbbn.com wrote:
> From: Souvik Dey <sodey at rbbn.com>
> 
> We need to add the pci_dev info to the rte_eth_dev structure during 
> the eth_ena_dev_init. Informantions like driver_name and numa_node 
> will not be populated otherwise.

stacktrace is like:

eth_ena_pci_probe
  rte_eth_dev_pci_generic_probe
    rte_eth_dev_pci_allocate
      rte_eth_copy_pci_info
    eth_ena_dev_init

So, before eth_ena_dev_init() called,  rte_eth_copy_pci_info() already should be called and eth_dev updated with pci_dev info. And you shouldn't need this patch.

Do you observe any missing data in eth_dev?

> 
> Signed-off-by: Souvik Dey <sodey at rbbn.com>
> 
> ---
> 
>  drivers/net/ena/ena_ethdev.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/ena/ena_ethdev.c 
> b/drivers/net/ena/ena_ethdev.c index ac0803d..329cb29 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1270,6 +1270,8 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
>  		     pci_dev->addr.devid,
>  		     pci_dev->addr.function);
>  
> +	rte_eth_copy_pci_info(eth_dev, pci_dev);
> +
>  	adapter->regs = pci_dev->mem_resource[ENA_REGS_BAR].addr;
>  	adapter->dev_mem_base = pci_dev->mem_resource[ENA_MEM_BAR].addr;
>  
> 



More information about the dev mailing list