[dpdk-dev,v2,38/42] ethdev: remove unused ethdev PCI probe/remove
Checks
Commit Message
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
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
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
@@ -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 ||
@@ -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
@@ -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)
@@ -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: