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 initializing message buffer to NULL and calling free everytime rte_mp_request_sync is used.
v2: - resending as patchset to make it easier to review it. - changed commit message as requested. - added bugzilla id. Bugzilla ID: 228 v3: - rework of the patchset - caller is no longer responsible for freeing buffers on failure - caller still has to free response buffers on success v4: - fixed checkpatch issues Herakliusz Lipiec (2): ipc: fix rte_mp_request_sync memleak ipc: fix tap pmd memleak drivers/net/tap/rte_eth_tap.c | 2 +- lib/librte_eal/common/eal_common_proc.c | 22 +++++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) -- 2.17.2