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

Message ID ad5316851d25e82496d87b629a0a33a66f354b35.1491924900.git.gaetan.rivet@6wind.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Gaëtan Rivet April 11, 2017, 3:44 p.m. UTC
  From: Jan Blunck <jblunck@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@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(-)
  

Comments

Neil Horman April 12, 2017, 11:24 a.m. UTC | #1
On Tue, Apr 11, 2017 at 05:44:45PM +0200, Gaetan Rivet wrote:
> From: Jan Blunck <jblunck@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@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
  
Neil Horman April 12, 2017, 11:28 a.m. UTC | #2
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@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@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
  

Patch

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: