From 80847935caafa4869b1cff330f69e8586fe135f0 Mon Sep 17 00:00:00 2001 From: Anoob Joseph Date: Wed, 10 Nov 2021 10:02:03 +0530 Subject: [PATCH] common/cnxk: fix memory leak The memory allocated for temporarily keeping DPTR need to be freed after operation. Also, dptr need to be aligned to 8B. Fixes: 71213a8b773c ("common/cnxk: support CPT CTX write through microcode op") Signed-off-by: Anoob Joseph Reviewed-by: Nithin Dabilpuram Reviewed-by: Tejasree Kondoj --- drivers/common/cnxk/roc_cpt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/common/cnxk/roc_cpt.c b/drivers/common/cnxk/roc_cpt.c index 49d8bf2230..8f8e6d3821 100644 --- a/drivers/common/cnxk/roc_cpt.c +++ b/drivers/common/cnxk/roc_cpt.c @@ -930,12 +930,14 @@ roc_cpt_ctx_write(struct roc_cpt_lf *lf, void *sa_dptr, void *sa_cptr, plt_err("Couldn't allocate memory for result address"); return -ENOMEM; } - dptr = plt_zmalloc(sa_len, 0); - if (!dptr) { + + dptr = plt_zmalloc(sa_len, 8); + if (dptr == NULL) { plt_err("Couldn't allocate memory for SA dptr"); plt_free(res); return -ENOMEM; } + for (i = 0; i < (sa_len / 8); i++) dptr[i] = plt_cpu_to_be_64(((uint64_t *)sa_dptr)[i]); @@ -962,6 +964,7 @@ roc_cpt_ctx_write(struct roc_cpt_lf *lf, void *sa_dptr, void *sa_cptr, plt_delay_ms(1); plt_free(res); + plt_free(dptr); return 0; } -- 2.39.5