app/pdump: remove only created vdevs
authorGage Eads <gage.eads@intel.com>
Tue, 26 Feb 2019 16:04:37 +0000 (10:04 -0600)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 1 Mar 2019 17:17:36 +0000 (18:17 +0100)
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 <gage.eads@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
app/pdump/main.c

index 5e183ea..ccf2a1d 100644 (file)
@@ -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();