Signed-off-by: Bernard Iremonger <bernard.iremonger at intel.com>
---
 lib/librte_ether/rte_ethdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index b79e5f79..270697e 100644
--- a/lib/librte_ether/rte_ethdev.c
+++ b/lib/librte_ether/rte_ethdev.c
@@ -387,8 +387,12 @@ rte_eth_dev_uninit(struct rte_pci_device *pci_dev)
        /* free ether device */
        rte_eth_dev_release_port(eth_dev);

-       if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+       if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+               rte_free(eth_dev->data->rx_queues);
+               rte_free(eth_dev->data->tx_queues);
                rte_free(eth_dev->data->dev_private);
+               memset(eth_dev->data, 0, sizeof(struct rte_eth_dev_data));
+       }

        eth_dev->pci_dev = NULL;
        eth_dev->driver = NULL;
-- 
1.9.1

Reply via email to