From: Min Hu (Connor) Date: Wed, 1 Jun 2022 03:15:13 +0000 (+0800) Subject: ethdev: fix port close in secondary process X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ea6101a8e483f3b6ec505c91b7e72ab1628dab1f;p=dpdk.git ethdev: fix port close in secondary process Secondary process needs to close device to release process private resources. But secondary process should not be obliged to wait for device stop before closing ethdev. Fixes: febc855b358e ("ethdev: forbid closing started device") Cc: stable@dpdk.org Signed-off-by: Min Hu (Connor) Reviewed-by: Andrew Rybchenko --- diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 46c088dc88..b9c5dea09f 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -1576,7 +1576,13 @@ rte_eth_dev_close(uint16_t port_id) RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); dev = &rte_eth_devices[port_id]; - if (dev->data->dev_started) { + /* + * Secondary process needs to close device to release process private + * resources. But secondary process should not be obliged to wait + * for device stop before closing ethdev. + */ + if (rte_eal_process_type() == RTE_PROC_PRIMARY && + dev->data->dev_started) { RTE_ETHDEV_LOG(ERR, "Cannot close started device (port %u)\n", port_id); return -EINVAL;