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) {
>               /*
> 

Reply via email to