We were returning rc = -1 from a device probing function
whenever the provided device was already probed before.

This basically broke hotplugging a device in secondary
process when the same device was already hotplugged in
the primary.

To fix it, just return 0 instead of -1. I believe this is
the originally intented behavior.

Fixes: e9d159c3d534 ("eal: allow probing a device again")
Cc: tho...@monjalon.net
Cc: sta...@dpdk.org

Signed-off-by: Darek Stojaczyk <dariusz.stojac...@intel.com>
---
 lib/librte_eal/common/eal_common_dev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_dev.c 
b/lib/librte_eal/common/eal_common_dev.c
index 6ac3ee859..75b83418c 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -222,7 +222,7 @@ local_dev_probe(const char *devargs, struct rte_device 
**new_dev)
        ret = dev->bus->plug(dev);
        if (ret) {
                if (rte_dev_is_probed(dev)) /* if already succeeded earlier */
-                       return ret; /* no rollback */
+                       return 0; /* no rollback */
                RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
                        dev->name);
                goto err_devarg;
-- 
2.17.1

Reply via email to