]> git.droids-corp.org - dpdk.git/commitdiff
common/cnxk: fix memory leak
authorAnoob Joseph <anoobj@marvell.com>
Wed, 10 Nov 2021 04:32:03 +0000 (10:02 +0530)
committerJerin Jacob <jerinj@marvell.com>
Thu, 11 Nov 2021 15:12:23 +0000 (16:12 +0100)
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>
drivers/common/cnxk/roc_cpt.c

index 49d8bf223085b9fb4e013233336624b8fce0ad10..8f8e6d382166a1dafdb6b0059f3dc1652accfd0c 100644 (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;
 }