From 499ca6161007d95d6727c4236b53fe8036efda00 Mon Sep 17 00:00:00 2001 From: Gage Eads Date: Tue, 26 Feb 2019 10:04:37 -0600 Subject: [PATCH] app/pdump: remove only created vdevs This commit fixes a bug in which a unidirectional pdump could attempt to remove devices it didn't create. Fixes: 35cb223ab7be ("app/pdump: fix vdev cleanup") Cc: stable@dpdk.org Signed-off-by: Gage Eads Acked-by: Reshma Pattan --- 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 5e183ea901..ccf2a1d2f7 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.20.1