From: Anoob Joseph <ano...@marvell.com>

Make sure CPTR is 128B aligned.

Signed-off-by: Anoob Joseph <ano...@marvell.com>
---
 drivers/common/cnxk/roc_cpt.c      | 5 +++++
 drivers/common/cnxk/roc_platform.h | 1 +
 2 files changed, 6 insertions(+)

diff --git a/drivers/common/cnxk/roc_cpt.c b/drivers/common/cnxk/roc_cpt.c
index aba2a49d19..64fa284b9a 100644
--- a/drivers/common/cnxk/roc_cpt.c
+++ b/drivers/common/cnxk/roc_cpt.c
@@ -1174,6 +1174,11 @@ roc_cpt_ctx_write(struct roc_cpt_lf *lf, void *sa_dptr, 
void *sa_cptr,
        uint64_t *dptr;
        int i;
 
+       if (!plt_is_aligned(sa_cptr, 128)) {
+               plt_err("Context pointer should be 128B aligned");
+               return -EINVAL;
+       }
+
        /* Use this lcore's LMT line as no one else is using it */
        ROC_LMT_BASE_ID_GET(lmt_base, lmt_id);
        inst = (struct cpt_inst_s *)lmt_base;
diff --git a/drivers/common/cnxk/roc_platform.h 
b/drivers/common/cnxk/roc_platform.h
index 658bafb935..2b45cc3721 100644
--- a/drivers/common/cnxk/roc_platform.h
+++ b/drivers/common/cnxk/roc_platform.h
@@ -185,6 +185,7 @@ plt_thread_is_valid(plt_thread_t thr)
 #define plt_intr_efds_index_set                rte_intr_efds_index_set
 #define plt_intr_elist_index_get       rte_intr_elist_index_get
 #define plt_intr_elist_index_set       rte_intr_elist_index_set
+#define plt_is_aligned                 rte_is_aligned
 
 #define plt_alarm_set   rte_eal_alarm_set
 #define plt_alarm_cancel rte_eal_alarm_cancel
-- 
2.25.1

Reply via email to