[dpdk-dev] [PATCH v2 38/42] ethdev: remove unused ethdev PCI probe/remove

Neil Horman nhorman at tuxdriver.com
Wed Apr 12 13:24:26 CEST 2017


On Tue, Apr 11, 2017 at 05:44:45PM +0200, Gaetan Rivet wrote:
> From: Jan Blunck <jblunck at infradead.org>
> 
> This removes the now unused rte_eth_dev_pci_probe() and
> rte_eth_dev_pci_remove() functions.
> 
> Signed-off-by: Jan Blunck <jblunck at infradead.org>
> ---
>  lib/librte_ether/rte_ethdev.c          | 97 ----------------------------------
>  lib/librte_ether/rte_ethdev.h          | 15 ------
>  lib/librte_ether/rte_ethdev_pci.h      | 10 ++++
>  lib/librte_ether/rte_ether_version.map | 10 +---
>  4 files changed, 11 insertions(+), 121 deletions(-)
> 
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 6ed2321..5bb016d 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -285,103 +285,6 @@ rte_eth_dev_release_port(struct rte_eth_dev *eth_dev)
>  }
>  
>  int
> -rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv,
> -		      struct rte_pci_device *pci_dev)
> -{
> -	struct eth_driver    *eth_drv;
> -	struct rte_eth_dev *eth_dev;
> -	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
> -
> -	int diag;
> -
> -	eth_drv = (struct eth_driver *)pci_drv;
> -
> -	rte_eal_pci_device_name(&pci_dev->addr, ethdev_name,
> -			sizeof(ethdev_name));
> -
> -	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
> -		eth_dev = rte_eth_dev_allocate(ethdev_name);
> -		if (eth_dev == NULL)
> -			return -ENOMEM;
> -
> -		eth_dev->data->dev_private = rte_zmalloc("ethdev private structure",
> -				  eth_drv->dev_private_size,
> -				  RTE_CACHE_LINE_SIZE);
> -		if (eth_dev->data->dev_private == NULL)
> -			rte_panic("Cannot allocate memzone for private port data\n");
> -	} else {
> -		eth_dev = rte_eth_dev_attach_secondary(ethdev_name);
> -		if (eth_dev == NULL) {
> -			/*
> -			 * if we failed to attach a device, it means the
> -			 * device is skipped in primary process, due to
> -			 * some errors. If so, we return a positive value,
> -			 * to let EAL skip it for the secondary process
> -			 * as well.
> -			 */
> -			return 1;
> -		}
> -	}
> -	eth_dev->device = &pci_dev->device;
> -	eth_dev->intr_handle = &pci_dev->intr_handle;
> -	eth_dev->driver = eth_drv;
> -
> -	/* Invoke PMD device initialization function */
> -	diag = (*eth_drv->eth_dev_init)(eth_dev);
> -	if (diag == 0)
> -		return 0;
> -
> -	RTE_PMD_DEBUG_TRACE("driver %s: eth_dev_init(vendor_id=0x%x device_id=0x%x) failed\n",
> -			pci_drv->driver.name,
> -			(unsigned) pci_dev->id.vendor_id,
> -			(unsigned) pci_dev->id.device_id);
> -	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
> -		rte_free(eth_dev->data->dev_private);
> -	rte_eth_dev_release_port(eth_dev);
> -	return diag;
> -}
> -
> -int
> -rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev)
> -{
> -	const struct eth_driver *eth_drv;
> -	struct rte_eth_dev *eth_dev;
> -	char ethdev_name[RTE_ETH_NAME_MAX_LEN];
> -	int ret;
> -
> -	if (pci_dev == NULL)
> -		return -EINVAL;
> -
> -	rte_eal_pci_device_name(&pci_dev->addr, ethdev_name,
> -			sizeof(ethdev_name));
> -
> -	eth_dev = rte_eth_dev_allocated(ethdev_name);
> -	if (eth_dev == NULL)
> -		return -ENODEV;
> -
> -	eth_drv = (const struct eth_driver *)pci_dev->driver;
> -
> -	/* Invoke PMD device uninit function */
> -	if (*eth_drv->eth_dev_uninit) {
> -		ret = (*eth_drv->eth_dev_uninit)(eth_dev);
> -		if (ret)
> -			return ret;
> -	}
> -
> -	/* free ether device */
> -	rte_eth_dev_release_port(eth_dev);
> -
> -	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
> -		rte_free(eth_dev->data->dev_private);
> -
> -	eth_dev->device = NULL;
> -	eth_dev->driver = NULL;
> -	eth_dev->data = NULL;
> -
> -	return 0;
> -}
> -
> -int
>  rte_eth_dev_is_valid_port(uint8_t port_id)
>  {
>  	if (port_id >= RTE_MAX_ETHPORTS ||
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 8cd1a11..abef70f 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -4608,21 +4608,6 @@ rte_eth_dev_get_port_by_name(const char *name, uint8_t *port_id);
>  int
>  rte_eth_dev_get_name_by_port(uint8_t port_id, char *name);
>  
> -/**
> - * @internal
> - * Wrapper for use by pci drivers as a .probe function to attach to a ethdev
> - * interface.
> - */
> -int rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv,
> -			  struct rte_pci_device *pci_dev);
> -
> -/**
> - * @internal
> - * Wrapper for use by pci drivers as a .remove function to detach a ethdev
> - * interface.
> - */
> -int rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/lib/librte_ether/rte_ethdev_pci.h b/lib/librte_ether/rte_ethdev_pci.h
> index 4b728db..fe62589 100644
> --- a/lib/librte_ether/rte_ethdev_pci.h
> +++ b/lib/librte_ether/rte_ethdev_pci.h
> @@ -108,6 +108,11 @@ rte_eth_dev_pci_release(struct rte_eth_dev *eth_dev)
>  
>  typedef int (*eth_dev_pci_callback_t)(struct rte_eth_dev *eth_dev);
>  
> +/**
> + * @internal
> + * Wrapper for use by pci drivers in a .probe function to attach to a ethdev
> + * interface.
> + */
>  static inline int
>  rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
>  	size_t private_data_size, eth_dev_pci_callback_t dev_init)
> @@ -127,6 +132,11 @@ rte_eth_dev_pci_generic_probe(struct rte_pci_device *pci_dev,
>  	return ret;
>  }
>  
> +/**
> + * @internal
> + * Wrapper for use by pci drivers in a .remove function to detach a ethdev
> + * interface.
> + */
>  static inline int
>  rte_eth_dev_pci_generic_remove(struct rte_pci_device *pci_dev,
>  	eth_dev_pci_callback_t dev_uninit)
> diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
> index f2bed58..b95312f 100644
> --- a/lib/librte_ether/rte_ether_version.map
> +++ b/lib/librte_ether/rte_ether_version.map
> @@ -134,14 +134,6 @@ DPDK_16.07 {
>  
>  } DPDK_16.04;
>  
> -DPDK_16.11 {
> -	global:
> -
> -	rte_eth_dev_pci_probe;
> -	rte_eth_dev_pci_remove;
> -
> -} DPDK_16.07;
> -
>  DPDK_17.02 {
>  	global:
>  
> @@ -153,7 +145,7 @@ DPDK_17.02 {
>  	rte_flow_query;
>  	rte_flow_validate;
>  
> -} DPDK_16.11;
> +} DPDK_16.07;
>  
>  DPDK_17.05 {
>  	global:
> -- 
> 2.1.4
> 
> 

given that this was an exported function, there may be other application out
there using this method.  You need to go through the deprecation process before
this can be integrated.

Neil



More information about the dev mailing list