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: sta...@dpdk.org Signed-off-by: Gage Eads <gage.e...@intel.com> --- app/pdump/main.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/pdump/main.c b/app/pdump/main.c index 5e183ea90..ccf2a1d2f 100644 --- a/app/pdump/main.c +++ b/app/pdump/main.c @@ -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(); -- 2.13.6