[dpdk-dev,v2,1/6] ethdev: fix device state on detach
Checks
Commit Message
The device state should be handled by the ether layer when possible.
Applications should not have to do it.
Not setting the state to UNUSED will make the port_id of the device
valid for all ether API functions, usually resulting in segfault.
Fixes: 284c908cc588 ("app/testpmd: request device removal interrupt")
Cc: stable@dpdk.org
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
app/test-pmd/testpmd.c | 1 -
lib/librte_ether/rte_ethdev.c | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
@@ -1836,7 +1836,6 @@ rmv_event_callback(void *arg)
close_port(port_id);
printf("removing device %s\n", dev->device->name);
rte_eal_dev_detach(dev->device);
- dev->state = RTE_ETH_DEV_UNUSED;
}
/* This function is used by the interrupt thread */
@@ -453,6 +453,7 @@ rte_eth_dev_detach(uint8_t port_id, char *name)
if (ret < 0)
goto err;
+ rte_eth_devices[port_id].state = RTE_ETH_DEV_UNUSED;
return 0;
err: