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

Reply via email to