octeontx2-af: Avoid duplicate unicast rule in mcam_rules list
authorSubbaraya Sundeep <sbhatta@marvell.com>
Wed, 17 Mar 2021 13:35:37 +0000 (19:05 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Mar 2021 19:29:40 +0000 (12:29 -0700)
commitb6b0e3667e1b2c796cd282d5ec385d5864ccb1ce
treeaf8c180435e9a3f66dc39e3da27fdd598719cabe
parent56bcef528bd87d66ddf81f0fb1b8837cce1b2667
octeontx2-af: Avoid duplicate unicast rule in mcam_rules list

A mcam rule described by mcam_rule struct has all the info
such as the hardware MCAM entry number, match criteria and
corresponding action etc. All mcam rules are stored in a
linked list mcam->rules. When adding/updating a rule to the
mcam->rules it is checked if a rule already exists for the
mcam entry. If the rule already exists, the same rule is
updated instead of creating new rule. This way only one
mcam_rule exists for the only one default unicast entry
installed by AF. But a PF/VF can get different NIXLF
(or default unicast entry number) after a attach-detach-attach
sequence. When that happens mcam_rules list end up with two
default unicast rules. Fix the problem by deleting the default
unicast rule list node always when disabling mcam rules.

Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c