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: sta...@dpdk.org

Signed-off-by: Ivan Malov <ivan.ma...@arknetworks.am>
Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktio...@arknetworks.am>
Reviewed-by: Andy Moreton <amore...@xilinx.com>
---
 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

Reply via email to