From: Anoob Joseph Date: Wed, 10 Nov 2021 04:32:03 +0000 (+0530) Subject: common/cnxk: fix memory leak X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=80847935caafa4869b1cff330f69e8586fe135f0;p=dpdk.git 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 --- 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; }