On Tue, 8 Oct 2024 08:41:34 -0700 Stephen Hemminger <step...@networkplumber.org> wrote:
> 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; > } This fix is not right, but something is wrong with the original code? [865/3024] Compiling C object drivers/libtmp_rte_event_cnxk.a.p/event_cnxk_cnxk_eventdev.c.o ../drivers/event/cnxk/cnxk_eventdev.c: In function ‘cnxk_setup_event_ports’: ../drivers/event/cnxk/cnxk_eventdev.c:125:17: warning: ‘rte_free’ called on a pointer to an unallocated object ‘18446744073709551552’ [-Wfree-nonheap-object] 125 | rte_free(cnxk_sso_hws_get_cookie(event_dev->data->ports[i])); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [3024/3024] Linking target app/dpdk-test