Skip to content

Commit

Permalink
ethdev: fix port close in secondary process
Browse files Browse the repository at this point in the history
[ upstream commit ea6101a ]

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: febc855 ("ethdev: forbid closing started device")

Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
  • Loading branch information
hushenggitcount authored and kevintraynor committed Jun 8, 2022
1 parent 2400300 commit 7c2df6b
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion lib/ethdev/rte_ethdev.c
Expand Up @@ -1932,7 +1932,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;
Expand Down

0 comments on commit 7c2df6b

Please sign in to comment.