21/06/2017 01:29, Gaetan Rivet: > --- a/lib/librte_ether/rte_ethdev.c > +++ b/lib/librte_ether/rte_ethdev.c > @@ -354,26 +354,14 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t > *port_id) > static int > rte_eth_dev_is_detachable(uint8_t port_id) > { > - uint32_t dev_flags; > + struct rte_eth_dev *dev; > > RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL); > > - switch (rte_eth_devices[port_id].data->kdrv) { > - case RTE_KDRV_IGB_UIO: > - case RTE_KDRV_UIO_GENERIC: > - case RTE_KDRV_NIC_UIO: > - case RTE_KDRV_NONE: > - case RTE_KDRV_VFIO: > - break; > - default: > - return -ENOTSUP; > - } > - dev_flags = rte_eth_devices[port_id].data->dev_flags; > - if ((dev_flags & RTE_ETH_DEV_DETACHABLE) && > - (!(dev_flags & RTE_ETH_DEV_BONDED_SLAVE))) > + dev = &rte_eth_devices[port_id]; > + if (dev->data->dev_flags & RTE_ETH_DEV_BONDED_SLAVE) > return 0; > - else > - return 1; > + return !!dev->device->devargs->bus->unplug; > }
The changes in rte_eth_dev_is_detachable() deserves a separate commit. Are you removing RTE_ETH_DEV_DETACHABLE flag? I think this change cannot be done before implementing unplug in PCI.