In functions rte_dev_probe() and __handle_secondary_request(),
an error message was logged as a failure if the probe returns -EEXIST.
Anyway this error code is not returned by rte_dev_probe()
as it is not considered as an error.
For instance, in multi-process case, some synchronizations may request
to probe a device which was already probed before by the process.

Signed-off-by: Thomas Monjalon <tho...@monjalon.net>
---
 lib/librte_eal/common/eal_common_dev.c | 12 ++----------
 lib/librte_eal/common/hotplug_mp.c     |  5 ++---
 2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_dev.c 
b/lib/librte_eal/common/eal_common_dev.c
index 048c0b025f..deaaea9345 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -222,18 +222,10 @@ rte_dev_probe(const char *devargs)
        /* primary attach the new device itself. */
        ret = local_dev_probe(devargs, &dev);
 
-       if (ret != 0) {
+       if (ret != 0 && ret != -EEXIST) {
                RTE_LOG(ERR, EAL,
                        "Failed to attach device on primary process\n");
-
-               /**
-                * it is possible that secondary process failed to attached a
-                * device that primary process have during initialization,
-                * so for -EEXIST case, we still need to sync with secondary
-                * process.
-                */
-               if (ret != -EEXIST)
-                       return ret;
+               return ret;
        }
 
        /* primary send attach sync request to secondary. */
diff --git a/lib/librte_eal/common/hotplug_mp.c 
b/lib/librte_eal/common/hotplug_mp.c
index 94bd1d896e..69e9a16d6a 100644
--- a/lib/librte_eal/common/hotplug_mp.c
+++ b/lib/librte_eal/common/hotplug_mp.c
@@ -96,10 +96,9 @@ __handle_secondary_request(void *param)
 
        if (req->t == EAL_DEV_REQ_TYPE_ATTACH) {
                ret = local_dev_probe(req->devargs, &dev);
-               if (ret != 0) {
+               if (ret != 0 && ret != -EEXIST) {
                        RTE_LOG(ERR, EAL, "Failed to hotplug add device on 
primary\n");
-                       if (ret != -EEXIST)
-                               goto finish;
+                       goto finish;
                }
                ret = eal_dev_hotplug_request_to_secondary(&tmp_req);
                if (ret != 0) {
-- 
2.20.1

Reply via email to