From febc855b358e3579f0eb44c76c329b623f87a376 Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko Date: Wed, 20 Oct 2021 16:15:40 +0300 Subject: [PATCH] ethdev: forbid closing started device Ethernet device must be stopped first before close in accordance with the documentation. Fixes: 980995f8cc56 ("ethdev: improve API comments of close and detach functions") Cc: stable@dpdk.org Signed-off-by: Andrew Rybchenko Acked-by: Thomas Monjalon Acked-by: Ajit Khaparde --- lib/ethdev/rte_ethdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 3b8ef9ef22..f981e0226a 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -1893,6 +1893,12 @@ 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) { + RTE_ETHDEV_LOG(ERR, "Cannot close started device (port %u)\n", + port_id); + return -EINVAL; + } + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_close, -ENOTSUP); *lasterr = (*dev->dev_ops->dev_close)(dev); if (*lasterr != 0) -- 2.20.1