fs_bus_uninit is always returning 0 no matter what was the status of each sub device bus_uninit value.
Fixes: a46f8d58 ("net/failsafe: add fail-safe PMD") Signed-off-by: Raslan Darawsheh <rasl...@mellanox.com> --- drivers/net/failsafe/failsafe_eal.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/failsafe/failsafe_eal.c b/drivers/net/failsafe/failsafe_eal.c index c8f4318..f6e44ca 100644 --- a/drivers/net/failsafe/failsafe_eal.c +++ b/drivers/net/failsafe/failsafe_eal.c @@ -90,19 +90,21 @@ fs_bus_uninit(struct rte_eth_dev *dev) { struct sub_device *sdev = NULL; uint8_t i; - int ret; + int sdev_ret; + int ret = 0; FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_PROBED) { - ret = rte_eal_hotplug_remove(sdev->bus->name, - sdev->dev->name); - if (ret) { - ERROR("Failed to remove requested device %s", - sdev->dev->name); + sdev_ret = rte_eal_hotplug_remove(sdev->bus->name, + sdev->dev->name); + if (sdev_ret) { + ERROR("Failed to remove requested device %s" + "(errno: %d)", sdev->dev->name, sdev_ret); + ret = -1; continue; } sdev->state = DEV_PROBED - 1; } - return 0; + return ret; } int @@ -111,8 +113,6 @@ failsafe_eal_uninit(struct rte_eth_dev *dev) int ret; ret = fs_bus_uninit(dev); - if (ret) - return ret; PRIV(dev)->state = DEV_PROBED - 1; - return 0; + return ret; } -- 2.7.4