When sending multiple requests, rte_mp_request_sync can succeed sending a few of those requests, but then fail on a later one and in the end return with rc=-1. The upper layers - e.g. device hotplug - currently handles this case as if no messages were sent and no memory for response buffers was allocated, which is not true. Fixed by always freeing reply message buffers.
Fixes: 660098d61f57 ("pdump: use generic multi-process channel") Cc: jianfeng....@intel.com Cc: sta...@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lip...@intel.com> --- lib/librte_pdump/rte_pdump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_pdump/rte_pdump.c b/lib/librte_pdump/rte_pdump.c index 14744b9ff..3787c3e32 100644 --- a/lib/librte_pdump/rte_pdump.c +++ b/lib/librte_pdump/rte_pdump.c @@ -525,8 +525,8 @@ pdump_prepare_client_request(char *device, uint16_t queue, rte_errno = resp->err_value; if (!resp->err_value) ret = 0; - free(mp_reply.msgs); } + free(mp_reply.msgs); if (ret < 0) RTE_LOG(ERR, PDUMP, -- 2.17.2