[v4,18/34] net/sfc: move MAE counter stream start to action set handler

Message ID 20230607130245.8048-19-ivan.malov@arknetworks.am (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/sfc: support HW conntrack assistance |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Ivan Malov June 7, 2023, 1:02 p.m. UTC
  Logically, starting flow counter streaming belongs in action
set enable path. Move it there as a preparation step for the
patch that will make action rules shareable by several flows.

Signed-off-by: Ivan Malov <ivan.malov@arknetworks.am>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/sfc_mae.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)
  

Patch

diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c
index e2f098ea53..37292f5d7c 100644
--- a/drivers/net/sfc/sfc_mae.c
+++ b/drivers/net/sfc/sfc_mae.c
@@ -1063,6 +1063,18 @@  sfc_mae_action_set_enable(struct sfc_adapter *sa,
 			return rc;
 		}
 
+		if (action_set->n_counters > 0) {
+			rc = sfc_mae_counter_start(sa);
+			if (rc != 0) {
+				sfc_err(sa, "failed to start MAE counters support: %s",
+					rte_strerror(rc));
+				sfc_mae_encap_header_disable(sa, encap_header);
+				sfc_mae_mac_addr_disable(sa, src_mac_addr);
+				sfc_mae_mac_addr_disable(sa, dst_mac_addr);
+				return rc;
+			}
+		}
+
 		rc = sfc_mae_counters_enable(sa, counters,
 					     action_set->n_counters,
 					     action_set->spec);
@@ -4141,15 +4153,6 @@  sfc_mae_flow_insert(struct sfc_adapter *sa,
 	if (rc != 0)
 		goto fail_action_set_enable;
 
-	if (action_set->n_counters > 0) {
-		rc = sfc_mae_counter_start(sa);
-		if (rc != 0) {
-			sfc_err(sa, "failed to start MAE counters support: %s",
-				rte_strerror(rc));
-			goto fail_mae_counter_start;
-		}
-	}
-
 	fw_rsrc = &action_set->fw_rsrc;
 
 	rc = efx_mae_action_rule_insert(sa->nic, spec_mae->match_spec,
@@ -4164,7 +4167,6 @@  sfc_mae_flow_insert(struct sfc_adapter *sa,
 	return 0;
 
 fail_action_rule_insert:
-fail_mae_counter_start:
 	sfc_mae_action_set_disable(sa, action_set);
 
 fail_action_set_enable: