rte_mp_request_sync() says that the caller is responsible for freeing one of its parameters afterwards. vdev didn't do that, causing a memory leak.
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel") Cc: jianfeng....@intel.com Cc: qi.z.zh...@intel.com Cc: sta...@dpdk.org Signed-off-by: Paul Luse <paul.e.l...@intel.com> Signed-off-by: Darek Stojaczyk <dariusz.stojac...@intel.com> --- drivers/bus/vdev/vdev.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index 688e31c21..685cc4e78 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -425,6 +425,7 @@ vdev_scan(void) mp_rep = &mp_reply.msgs[0]; resp = (struct vdev_param *)mp_rep->param; VDEV_LOG(INFO, "Received %d vdevs", resp->num); + free(mp_reply.msgs); } else VDEV_LOG(ERR, "Failed to request vdev from primary"); -- 2.17.1