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 <anoobj@marvell.com>
Reviewed-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
Reviewed-by: Tejasree Kondoj <ktejasree@marvell.com>
This commit is contained in:
Anoob Joseph 2021-11-10 10:02:03 +05:30 committed by Jerin Jacob
parent 5050f441e3
commit 80847935ca

View File

@ -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;
}