The code to cleanup in case of error was passing incorrect
value to rte_free. The ports[] entry was allocated with
rte_malloc and that should be used instead of the offset
in that object.

Fixes: 97a05c1fe634 ("event/cnxk: add port config")
Cc: sthot...@marvell.com
Cc: sta...@dpdk.org

Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
---
 drivers/event/cnxk/cnxk_eventdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/event/cnxk/cnxk_eventdev.c 
b/drivers/event/cnxk/cnxk_eventdev.c
index 4b2d6bffa6..08c6ce0c07 100644
--- a/drivers/event/cnxk/cnxk_eventdev.c
+++ b/drivers/event/cnxk/cnxk_eventdev.c
@@ -121,8 +121,10 @@ cnxk_setup_event_ports(const struct rte_eventdev 
*event_dev,
        return 0;
 hws_fini:
        for (i = i - 1; i >= 0; i--) {
+               void *ws = event_dev->data->ports[i];
+
                event_dev->data->ports[i] = NULL;
-               rte_free(cnxk_sso_hws_get_cookie(event_dev->data->ports[i]));
+               rte_free(ws);
        }
        return -ENOMEM;
 }
-- 
2.45.2

Reply via email to