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