[dpdk-dev] [PATCH v4 9/9] ethdev: use embedded rte_device to detach driver

Thomas Monjalon thomas at monjalon.net
Wed Jun 21 16:33:16 CEST 2017


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.


More information about the dev mailing list