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