[dpdk-dev] [PATCH] net/af_xdp: fix failure on rte_dev_remove

Ferruh Yigit ferruh.yigit at intel.com
Wed Jun 5 17:29:30 CEST 2019


On 6/1/2019 5:13 PM, Ye Xiaolong wrote:
> On 05/31, William Tu wrote:
>> When users call rte_eth_dev_close() and rte_dev_remove(), the af_xdp
>> pmd return -1 (EPERM) due to eth_dev == NULL.
>>
>> Since the af_xdp pmd driver advertises RTE_ETH_DEV_CLOSE_REMOVE, all
>> the resources are freed on rte_eth_dev_close().  rte_dev_remove() tries
>> to detach device and subsequently calls rte_pmd_af_xdp_remove() that tries
>> to free already freed resources and fails. Fix it by return success.
>>
>> Fixes: f1debd77efaf6 ("net/af_xdp: introduce AF_XDP PMD")
>> Reported-at: https://patchwork.ozlabs.org/patch/1106528/
>> Signed-off-by: William Tu <u9012063 at gmail.com>
>> Suggested-by: Ilya Maximets <i.maximets at samsung.com>
>> ---
>> drivers/net/af_xdp/rte_eth_af_xdp.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
>> index 35c72272c919..3dcc3628c5d0 100644
>> --- a/drivers/net/af_xdp/rte_eth_af_xdp.c
>> +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
>> @@ -944,7 +944,7 @@ rte_pmd_af_xdp_remove(struct rte_vdev_device *dev)
>> 	/* find the ethdev entry */
>> 	eth_dev = rte_eth_dev_allocated(rte_vdev_device_name(dev));
>> 	if (eth_dev == NULL)
>> -		return -1;
>> +		return 0;
>>
>> 	eth_dev_close(eth_dev);
>> 	rte_eth_dev_release_port(eth_dev);
> 
> Looks good to me. Thanks for the fix.
> 
> Acked-by: Xiaolong Ye <xiaolong.ye at intel.com>

Applied to dpdk-next-net/master, thanks.


More information about the dev mailing list