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:
parent
5050f441e3
commit
80847935ca
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user