X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Fhotplug_mp.c;h=ee791903b3b74fe73240cbdcf2305128cda36b49;hb=f002ee9c8e26d2d7f0cda418d2565adc696584cf;hp=4052a5c7fb71f77ade9a144818afbc1784894a64;hpb=32fa7f8913930be9bb44995e391b5c6b2a88efb6;p=dpdk.git diff --git a/lib/librte_eal/common/hotplug_mp.c b/lib/librte_eal/common/hotplug_mp.c index 4052a5c7fb..ee791903b3 100644 --- a/lib/librte_eal/common/hotplug_mp.c +++ b/lib/librte_eal/common/hotplug_mp.c @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -376,7 +377,7 @@ int eal_dev_hotplug_request_to_primary(struct eal_dev_mp_req *req) ret = rte_mp_request_sync(&mp_req, &mp_reply, &ts); if (ret || mp_reply.nb_received != 1) { - RTE_LOG(ERR, EAL, "cannot send request to primary"); + RTE_LOG(ERR, EAL, "Cannot send request to primary\n"); if (!ret) return -1; return ret; @@ -404,7 +405,11 @@ int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req) ret = rte_mp_request_sync(&mp_req, &mp_reply, &ts); if (ret != 0) { - RTE_LOG(ERR, EAL, "rte_mp_request_sync failed\n"); + /* if IPC is not supported, behave as if the call succeeded */ + if (rte_errno != ENOTSUP) + RTE_LOG(ERR, EAL, "rte_mp_request_sync failed\n"); + else + ret = 0; return ret; } @@ -433,14 +438,15 @@ int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req) return 0; } -int rte_mp_dev_hotplug_init(void) +int eal_mp_dev_hotplug_init(void) { int ret; if (rte_eal_process_type() == RTE_PROC_PRIMARY) { ret = rte_mp_action_register(EAL_DEV_MP_ACTION_REQUEST, handle_secondary_request); - if (ret != 0) { + /* primary is allowed to not support IPC */ + if (ret != 0 && rte_errno != ENOTSUP) { RTE_LOG(ERR, EAL, "Couldn't register '%s' action\n", EAL_DEV_MP_ACTION_REQUEST); return ret;