net/e1000: fix memzone leak on queue re-configure
authorYunjian Wang <wangyunjian@huawei.com>
Wed, 22 Sep 2021 13:28:20 +0000 (21:28 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 7 Oct 2021 11:38:16 +0000 (13:38 +0200)
commit09cbfa2da4268b4f789ffd34587365b51fa656b4
tree638e6d6be5db5f838c24be242bade5a77c9e895e
parentb225783dda7a254fc49bc4d43b8b58f67e03be1d
net/e1000: fix memzone leak on queue re-configure

Normally when closing the device the queue memzone should be
freed. But the memzone will be not freed, when device setup
ops like:

rte_eth_bond_slave_remove
-->__eth_bond_slave_remove_lock_free
---->slave_remove
------>rte_eth_dev_internal_reset
-------->rte_eth_dev_rx_queue_config
---------->eth_dev_rx_queue_config
------------>em_rx_queue_release
rte_eth_dev_close
-->eth_em_close
---->em_dev_free_queues
------>em_rx_queue_release
      (not been called due to nb_rx_queues and nb_tx_queues are 0)

And when queue number is changed to small size, the BIG memzone
queue index will be lost. This will lead to a memory leak. So we
should release the memzone when releasing queues.

Fixes: 460d1679586e ("drivers/net: delete HW rings while freeing queues")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Haiyue Wang <haiyue.wang@intel.com>
drivers/net/e1000/em_rxtx.c
drivers/net/e1000/igb_rxtx.c