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

Neil Horman nhorman at tuxdriver.com
Wed Apr 12 13:28:51 CEST 2017


On Wed, Apr 12, 2017 at 07:24:26AM -0400, Neil Horman wrote:
> 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
> 
> 
Scratch that, was looking at an old version of the deprecation file, this has
already been announced.

Neil



More information about the dev mailing list