[dpdk-dev] [PATCH 04/20] net/atlantic: release port upon close

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


On 9/13/2020 11:06 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>

<...>

> @@ -721,12 +687,32 @@ atl_dev_set_link_down(struct rte_eth_dev *dev)
>   static int
>   atl_dev_close(struct rte_eth_dev *dev)
>   {
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
> +	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
> +	struct aq_hw_s *hw;
> +
>   	PMD_INIT_FUNC_TRACE();
>   
> +	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> +		return -EPERM;

Is this case an error, or should it return 0.

> +
> +	hw = ATL_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +
>   	atl_dev_stop(dev);
>   
>   	atl_free_queues(dev);
>   
> +	dev->dev_ops = NULL;
> +	dev->rx_pkt_burst = NULL;
> +	dev->tx_pkt_burst = NULL;

What do you think moving above cleanup to 'rte_eth_dev_release_port()'?



More information about the dev mailing list