When sending synchronous IPC requests, the caller must free the response buffer even if the request returned failure. Fix the code to correctly use the IPC API.
Bugzilla ID: 228 Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel") Cc: jianfeng....@intel.com Cc: sta...@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lip...@intel.com> --- drivers/bus/vdev/vdev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c index 04f76a63f..7c43f2ddd 100644 --- a/drivers/bus/vdev/vdev.c +++ b/drivers/bus/vdev/vdev.c @@ -429,10 +429,9 @@ 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"); - + free(mp_reply.msgs); /* Fall through to allow private vdevs in secondary process */ } -- 2.17.2