[dpdk-stable] [dpdk-dev] [PATCH 1/3] ethdev: avoid error on PCI unplug of already closed ethdev

Andrew Rybchenko arybchenko at solarflare.com
Fri Jun 21 12:15:52 CEST 2019


On 6/21/19 12:52 PM, David Marchand wrote:
> On Fri, Jun 21, 2019 at 11:41 AM Andrew Rybchenko <arybchenko at solarflare.com>
> wrote:
>> If PCI Ethernet device driver removes it on close
>> (RTE_ETH_DEV_CLOSE_REMOVE) and later PCI device itself is unplugged,
>> it should not fail because of Ethernet device is already removed.
>>
>> Fixes: 23ea57a2a0ce ("ethdev: complete closing of port")
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>> Reviewed-by: Ivan Malov <ivan.malov at oktetlabs.ru>
>> ---
>> Cc: Thomas Monjalon <thomas at monjalon.net>
>> Cc: Ferruh Yigit <ferruh.yigit at intel.com>
>>
>>   lib/librte_ethdev/rte_ethdev_pci.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev_pci.h
>> b/lib/librte_ethdev/rte_ethdev_pci.h
>> index 23257e986..ccdbb46ec 100644
>> --- a/lib/librte_ethdev/rte_ethdev_pci.h
>> +++ b/lib/librte_ethdev/rte_ethdev_pci.h
>> @@ -184,7 +184,7 @@ rte_eth_dev_pci_generic_remove(struct rte_pci_device
>> *pci_dev,
>>
>>          eth_dev = rte_eth_dev_allocated(pci_dev->device.name);
>>          if (!eth_dev)
>> -               return -ENODEV;
>> +               return 0;
>>
>>          if (dev_uninit) {
>>                  ret = dev_uninit(eth_dev);
>> --
>> 2.17.1
>>
> We are changing the behavior for all drivers, while I understand this
> should apply to the ones that have the RTE_ETH_DEV_CLOSE_REMOVE flag.
> Btw, I had reported this earlier [1], care to add a little Reported-by for
> me ? :-)

Yes, I agree. Unfortunately there is no ethdev here to check
RTE_ETH_DEV_CLOSE_REMOVE. It could be PCI driver flag for the
feature, but I'm not sure if it makes sense to add one more
flag for transition.

> 1: http://mails.dpdk.org/archives/dev/2019-June/134150.html


More information about the stable mailing list