On 5/27/2019 2:46 PM, Allain Legacy wrote: > The rte_eth_dev_close() function now handles freeing resources for > devices (e.g., mac_addrs). There is no change in behaviour for AVP > devices since they do not currently free their dynamic memory; which was > a bug. To conform with the new close() behaviour we are asserting the > RTE_ETH_DEV_CLOSE_REMOVE flag so that rte_eth_dev_close() releases > all device related dynamic memory. > > Cc: Matt Peters <matt.pet...@windriver.com> > Signed-off-by: Allain Legacy <allain.leg...@windriver.com>
+1 to patch. But Rx/Tx queues are not freed by 'rte_eth_dev_close()', they are still need to be freed by the driver. Since you started this, can you please extend the patch to clean them as well? > --- > drivers/net/avp/avp_ethdev.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c > index 09388d05f..7c37f4c8a 100644 > --- a/drivers/net/avp/avp_ethdev.c > +++ b/drivers/net/avp/avp_ethdev.c > @@ -959,6 +959,8 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev) > eth_dev->dev_ops = &avp_eth_dev_ops; > eth_dev->rx_pkt_burst = &avp_recv_pkts; > eth_dev->tx_pkt_burst = &avp_xmit_pkts; > + /* Let rte_eth_dev_close() release the port resources */ > + eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; > > if (rte_eal_process_type() != RTE_PROC_PRIMARY) { > /* >