Not cleaning the rings prevents creating devices again, which breaks to
run some unit tests multiple times.

Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com>
---
 app/test/virtual_pmd.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c
index 7036f401ed95..6098e633f35a 100644
--- a/app/test/virtual_pmd.c
+++ b/app/test/virtual_pmd.c
@@ -34,7 +34,7 @@ struct virtual_ethdev_queue {
 };
 
 static int
-virtual_ethdev_start_success(struct rte_eth_dev *eth_dev __rte_unused)
+virtual_ethdev_start_success(struct rte_eth_dev *eth_dev)
 {
        eth_dev->data->dev_started = 1;
 
@@ -42,13 +42,13 @@ virtual_ethdev_start_success(struct rte_eth_dev *eth_dev 
__rte_unused)
 }
 
 static int
-virtual_ethdev_start_fail(struct rte_eth_dev *eth_dev __rte_unused)
+virtual_ethdev_start_fail(struct rte_eth_dev *eth_dev)
 {
        eth_dev->data->dev_started = 0;
 
        return -1;
 }
-static int  virtual_ethdev_stop(struct rte_eth_dev *eth_dev __rte_unused)
+static int  virtual_ethdev_stop(struct rte_eth_dev *eth_dev)
 {
        void *pkt = NULL;
        struct virtual_ethdev_private *prv = eth_dev->data->dev_private;
@@ -65,8 +65,13 @@ static int  virtual_ethdev_stop(struct rte_eth_dev *eth_dev 
__rte_unused)
 }
 
 static int
-virtual_ethdev_close(struct rte_eth_dev *dev __rte_unused)
+virtual_ethdev_close(struct rte_eth_dev *eth_dev)
 {
+       struct virtual_ethdev_private *prv = eth_dev->data->dev_private;
+
+       rte_ring_free(prv->rx_queue);
+       rte_ring_free(prv->tx_queue);
+
        return 0;
 }
 
-- 
2.31.1

Reply via email to