]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
octeontx2-af: Fix default entries mcam entry action
authorHariprasad Kelam <hkelam@marvell.com>
Mon, 16 Feb 2026 09:03:38 +0000 (14:33 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 19 Feb 2026 01:11:10 +0000 (17:11 -0800)
As per design, AF should update the default MCAM action only when
mcam_index is -1. A bug in the previous patch caused default entries
to be changed even when the request was not for them.

Fixes: 570ba37898ec ("octeontx2-af: Update RSS algorithm index")
Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260216090338.1318976-1-hkelam@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c

index c7c70429eb6c10f6248b25458806bd78265f9d1f..8658cb2143dfc7cc8b024f9576f6f3eef5e93705 100644 (file)
@@ -1042,32 +1042,35 @@ void rvu_npc_update_flowkey_alg_idx(struct rvu *rvu, u16 pcifunc, int nixlf,
        rvu_write64(rvu, blkaddr,
                    NPC_AF_MCAMEX_BANKX_ACTION(index, bank), *(u64 *)&action);
 
-       /* update the VF flow rule action with the VF default entry action */
-       if (mcam_index < 0)
-               npc_update_vf_flow_entry(rvu, mcam, blkaddr, pcifunc,
-                                        *(u64 *)&action);
-
        /* update the action change in default rule */
        pfvf = rvu_get_pfvf(rvu, pcifunc);
        if (pfvf->def_ucast_rule)
                pfvf->def_ucast_rule->rx_action = action;
 
-       index = npc_get_nixlf_mcam_index(mcam, pcifunc,
-                                        nixlf, NIXLF_PROMISC_ENTRY);
+       if (mcam_index < 0) {
+               /* update the VF flow rule action with the VF default
+                * entry action
+                */
+               npc_update_vf_flow_entry(rvu, mcam, blkaddr, pcifunc,
+                                        *(u64 *)&action);
 
-       /* If PF's promiscuous entry is enabled,
-        * Set RSS action for that entry as well
-        */
-       npc_update_rx_action_with_alg_idx(rvu, action, pfvf, index, blkaddr,
-                                         alg_idx);
+               index = npc_get_nixlf_mcam_index(mcam, pcifunc,
+                                                nixlf, NIXLF_PROMISC_ENTRY);
 
-       index = npc_get_nixlf_mcam_index(mcam, pcifunc,
-                                        nixlf, NIXLF_ALLMULTI_ENTRY);
-       /* If PF's allmulti  entry is enabled,
-        * Set RSS action for that entry as well
-        */
-       npc_update_rx_action_with_alg_idx(rvu, action, pfvf, index, blkaddr,
-                                         alg_idx);
+               /* If PF's promiscuous  entry is enabled,
+                * Set RSS action for that entry as well
+                */
+               npc_update_rx_action_with_alg_idx(rvu, action, pfvf, index,
+                                                 blkaddr, alg_idx);
+
+               index = npc_get_nixlf_mcam_index(mcam, pcifunc,
+                                                nixlf, NIXLF_ALLMULTI_ENTRY);
+               /* If PF's allmulti  entry is enabled,
+                * Set RSS action for that entry as well
+                */
+               npc_update_rx_action_with_alg_idx(rvu, action, pfvf, index,
+                                                 blkaddr, alg_idx);
+       }
 }
 
 void npc_enadis_default_mce_entry(struct rvu *rvu, u16 pcifunc,