On 6/21/2019 11:15 AM, Andrew Rybchenko wrote: > On 6/21/19 12:52 PM, David Marchand wrote: >> On Fri, Jun 21, 2019 at 11:41 AM Andrew Rybchenko <arybche...@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: sta...@dpdk.org >>> >>> Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com> >>> Reviewed-by: Ivan Malov <ivan.ma...@oktetlabs.ru> >>> --- >>> Cc: Thomas Monjalon <tho...@monjalon.net> >>> Cc: Ferruh Yigit <ferruh.yi...@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
Reported-by: David Marchand <david.march...@redhat.com> > Acked-by: Ferruh Yigit <ferruh.yi...@intel.com>