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