pdump: only remove created vdevs
Checks
Commit Message
This commit fixes a bug in which pdump -- particularly when used in a
unidirectional manner -- could attempt to remove devices it didn't create.
Fixes: 35cb223ab7be ("pdump: fix vdev cleanup")
Cc: stable@dpdk.org
Signed-off-by: Gage Eads <gage.eads@intel.com>
---
app/pdump/main.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
Comments
> -----Original Message-----
> From: Eads, Gage
> Sent: Monday, February 25, 2019 5:14 PM
> To: dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Pattan, Reshma
> <reshma.pattan@intel.com>; stable@dpdk.org
> Subject: [PATCH] pdump: only remove created vdevs
>
> This commit fixes a bug in which pdump -- particularly when used in a
> unidirectional manner -- could attempt to remove devices it didn't create.
>
Small nit, You can remove "--" in commit message . Other than that
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
> -----Original Message-----
> From: Pattan, Reshma
> Sent: Tuesday, February 26, 2019 8:15 AM
> To: Eads, Gage <gage.eads@intel.com>; dev@dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; stable@dpdk.org
> Subject: RE: [PATCH] pdump: only remove created vdevs
>
>
>
> > -----Original Message-----
> > From: Eads, Gage
> > Sent: Monday, February 25, 2019 5:14 PM
> > To: dev@dpdk.org
> > Cc: Yigit, Ferruh <ferruh.yigit@intel.com>; Pattan, Reshma
> > <reshma.pattan@intel.com>; stable@dpdk.org
> > Subject: [PATCH] pdump: only remove created vdevs
> >
> > This commit fixes a bug in which pdump -- particularly when used in a
> > unidirectional manner -- could attempt to remove devices it didn't create.
> >
>
> Small nit, You can remove "--" in commit message . Other than that
>
> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
>
Sure thing. I'll fix the title and the Fixes commit name as well (both should be "app/pdump", not "pdump").
Thanks,
Gage
@@ -512,12 +512,19 @@ cleanup_pdump_resources(void)
if (pt->dir & RTE_PDUMP_FLAG_TX)
free_ring_data(pt->tx_ring, pt->tx_vdev_id, &pt->stats);
- /* Remove the vdev created */
- rte_eth_dev_get_name_by_port(pt->rx_vdev_id, name);
- rte_eal_hotplug_remove("vdev", name);
+ /* Remove the vdev(s) created */
+ if (pt->dir & RTE_PDUMP_FLAG_RX) {
+ rte_eth_dev_get_name_by_port(pt->rx_vdev_id, name);
+ rte_eal_hotplug_remove("vdev", name);
+ }
+
+ if (pt->single_pdump_dev)
+ continue;
- rte_eth_dev_get_name_by_port(pt->tx_vdev_id, name);
- rte_eal_hotplug_remove("vdev", name);
+ if (pt->dir & RTE_PDUMP_FLAG_TX) {
+ rte_eth_dev_get_name_by_port(pt->tx_vdev_id, name);
+ rte_eal_hotplug_remove("vdev", name);
+ }
}
cleanup_rings();