[dpdk-dev] [PATCH 12/20] net/pcap: release port upon close

Ferruh Yigit ferruh.yigit at intel.com
Wed Sep 23 18:44:44 CEST 2020


On 9/13/2020 11:07 PM, Thomas Monjalon wrote:
> The flag RTE_ETH_DEV_CLOSE_REMOVE is set so all port resources
> can be freed by rte_eth_dev_close().
> 
> Freeing of private port resources is moved
> from the ".remove(device)" to the ".dev_close(port)" operation.
> 
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
>   drivers/net/pcap/rte_eth_pcap.c | 29 ++++++++++++++---------------
>   1 file changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
> index 76e704a65a..a946fa9a1a 100644
> --- a/drivers/net/pcap/rte_eth_pcap.c
> +++ b/drivers/net/pcap/rte_eth_pcap.c
> @@ -734,6 +734,12 @@ eth_dev_close(struct rte_eth_dev *dev)
>   	unsigned int i;
>   	struct pmd_internals *internals = dev->data->dev_private;
>   
> +	if (internals == NULL)
> +		return 0;

Not sure if this check needed, can 'internals' be null at this stage?

But perhaps need to add 'RTE_PROC_PRIMARY' check.

> +
> +	PMD_LOG(INFO, "Closing pcap ethdev on NUMA socket %d",
> +			rte_socket_id());
> +
>   	/* Device wide flag, but cleanup must be performed per queue. */
>   	if (internals->infinite_rx) {
>   		for (i = 0; i < dev->data->nb_rx_queues; i++) {
> @@ -748,6 +754,12 @@ eth_dev_close(struct rte_eth_dev *dev)
>   		}
>   	}
>   
> +	rte_free(dev->process_private);
> +

Can we move freeing 'process_private' to 'rte_eth_dev_release_port()'


More information about the dev mailing list