There exists a time gap between the creation of the multiprocess channel
and the registration of request action handlers. Within this window, a
secondary process that receives an eal_dev_mp_request broadcast
notification might respond with ENOTSUP. This, in turn, causes the
rte_dev_probe() operation to fail in another secondary process.
To avoid this, disregarding ENOTSUP responses to attach notifications.

Fixes: 244d5130719c ("eal: enable hotplug on multi-process")
Cc: sta...@dpdk.org

Signed-off-by: Artemy Kovalyov <artem...@nvidia.com>
---
 lib/eal/common/hotplug_mp.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/eal/common/hotplug_mp.c b/lib/eal/common/hotplug_mp.c
index 6027819..e6a3f6b 100644
--- a/lib/eal/common/hotplug_mp.c
+++ b/lib/eal/common/hotplug_mp.c
@@ -428,6 +428,9 @@ int eal_dev_hotplug_request_to_secondary(struct 
eal_dev_mp_req *req)
                        if (req->t == EAL_DEV_REQ_TYPE_ATTACH &&
                                resp->result == -EEXIST)
                                continue;
+                       if (req->t == EAL_DEV_REQ_TYPE_ATTACH &&
+                               resp->result == -ENOTSUP)
+                               continue;
                        if (req->t == EAL_DEV_REQ_TYPE_DETACH &&
                                resp->result == -ENOENT)
                                continue;
-- 
1.8.3.1

Reply via email to