From: Satheesh Paul <psathe...@marvell.com>

While destroying SPI to SA index rule, inline device
mbox should be used. Adding changes to fix this.

Fixes: 04087b781484 ("common/cnxk: support SPI to SA index")

Signed-off-by: Kiran Kumar K <kirankum...@marvell.com>
Signed-off-by: Satheesh Paul <psathe...@marvell.com>
---
 drivers/common/cnxk/roc_npc.c      | 14 ++++++++++----
 drivers/common/cnxk/roc_npc_mcam.c |  8 ++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c
index 7228cffb57..ba75207955 100644
--- a/drivers/common/cnxk/roc_npc.c
+++ b/drivers/common/cnxk/roc_npc.c
@@ -1503,16 +1503,22 @@ npc_rss_group_free(struct npc *npc, struct roc_npc_flow 
*flow)
 static int
 roc_npc_delete_spi_to_sa_action(struct roc_npc *roc_npc, struct roc_npc_flow 
*flow)
 {
-       struct roc_nix *roc_nix = roc_npc->roc_nix;
        struct nix_spi_to_sa_delete_req *req;
+       struct nix_inl_dev *inl_dev;
+       struct idev_cfg *idev;
        struct mbox *mbox;
-       struct nix *nix;
+
+       PLT_SET_USED(roc_npc);
 
        if (!flow->spi_to_sa_info.has_action || flow->spi_to_sa_info.duplicate)
                return 0;
 
-       nix = roc_nix_to_nix_priv(roc_nix);
-       mbox = (&nix->dev)->mbox;
+       idev = idev_get_cfg();
+       if (!idev)
+               return -1;
+
+       inl_dev = idev->nix_inl_dev;
+       mbox = inl_dev->dev.mbox;
        req = mbox_alloc_msg_nix_spi_to_sa_delete(mbox);
        if (req == NULL)
                return -ENOSPC;
diff --git a/drivers/common/cnxk/roc_npc_mcam.c 
b/drivers/common/cnxk/roc_npc_mcam.c
index 948c446312..72892be300 100644
--- a/drivers/common/cnxk/roc_npc_mcam.c
+++ b/drivers/common/cnxk/roc_npc_mcam.c
@@ -96,10 +96,10 @@ int
 npc_mcam_free_all_entries(struct npc *npc)
 {
        struct npc_mcam_free_entry_req *req;
-       struct mbox *mbox = npc->mbox;
+       struct mbox *mbox = mbox_get(npc->mbox);
        int rc = -ENOSPC;
 
-       req = mbox_alloc_msg_npc_mcam_free_entry(mbox_get(mbox));
+       req = mbox_alloc_msg_npc_mcam_free_entry(mbox);
        if (req == NULL)
                goto exit;
        req->all = 1;
@@ -354,10 +354,10 @@ npc_mcam_alloc_entry(struct npc *npc, struct roc_npc_flow 
*mcam,
 {
        struct npc_mcam_alloc_entry_req *req;
        struct npc_mcam_alloc_entry_rsp *rsp;
-       struct mbox *mbox = npc->mbox;
+       struct mbox *mbox = mbox_get(npc->mbox);
        int rc = -ENOSPC;
 
-       req = mbox_alloc_msg_npc_mcam_alloc_entry(mbox_get(mbox));
+       req = mbox_alloc_msg_npc_mcam_alloc_entry(mbox);
        if (req == NULL)
                goto exit;
        req->contig = 1;
-- 
2.39.2

Reply via email to