net/sfc: fix outer rule and encap rollback on error
authorIvan Malov <ivan.malov@oktetlabs.ru>
Tue, 20 Apr 2021 21:10:04 +0000 (00:10 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 21 Apr 2021 10:38:37 +0000 (12:38 +0200)
Add missing statements to invalidate MAE resource IDs.

Fixes: dadff137931c ("net/sfc: support encap flow items in transfer rules")
Fixes: 1bbd1ec2348a ("net/sfc: support action VXLAN encap in MAE backend")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
drivers/net/sfc/sfc_mae.c

index 4dafe3d..0270c91 100644 (file)
@@ -235,6 +235,7 @@ sfc_mae_outer_rule_enable(struct sfc_adapter *sa,
                if (fw_rsrc->refcnt == 0) {
                        (void)efx_mae_outer_rule_remove(sa->nic,
                                                        &fw_rsrc->rule_id);
+                       fw_rsrc->rule_id.id = EFX_MAE_RSRC_ID_INVALID;
                }
                return rc;
        }
@@ -385,6 +386,7 @@ sfc_mae_encap_header_enable(struct sfc_adapter *sa,
                if (fw_rsrc->refcnt == 0) {
                        (void)efx_mae_encap_header_free(sa->nic,
                                                        &fw_rsrc->eh_id);
+                       fw_rsrc->eh_id.id = EFX_MAE_RSRC_ID_INVALID;
                }
                return rc;
        }