When the action parsing helper discovers it can "attach" to
an existing action set, it must invoke "delete" on the MAC
address(es) that it has "attached" to during parsing. That
is because the action set itself (i.e. not the flow rule
entry) holds a reference of the address(es).
Fixes: 4c6005999e41 ("net/sfc: support MAC address edits in transfer flows")
Cc: [email protected]
Signed-off-by: Ivan Malov <[email protected]>
Reviewed-by: Viacheslav Galaktionov <[email protected]>
Reviewed-by: Andy Moreton <[email protected]>
---
drivers/net/sfc/sfc_mae.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index aab697b204..c254562696 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -3912,6 +3912,8 @@ sfc_mae_rule_parse_actions(struct sfc_adapter *sa,
spec_mae->action_set = sfc_mae_action_set_attach(sa, &ctx);
if (spec_mae->action_set != NULL) {
+ sfc_mae_mac_addr_del(sa, ctx.src_mac);
+ sfc_mae_mac_addr_del(sa, ctx.dst_mac);
sfc_mae_encap_header_del(sa, ctx.encap_header);
efx_mae_action_set_spec_fini(sa->nic, ctx.spec);
return 0;
--
2.17.1