[v2,076/148] net/ice/base: fix handling recipes when reusing is not supported

Message ID 4da3372fb312cda985e152845fa674e30491ab73.1718204528.git.anatoly.burakov@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Bruce Richardson
Headers
Series Update net/ice base driver to latest upstream snapshot |

Checks

Context Check Description
ci/checkpatch warning coding style issues

Commit Message

Anatoly Burakov June 12, 2024, 3:01 p.m. UTC
From: Ian Stokes <ian.stokes@intel.com>

Switch recipe reuse feature caused issues on older FW which does not support
this feature. Finding matching recipes was working incorrectly, what lead to
resource starvation after multiple adding and removing recipes.

Signed-off-by: Julianx Grajkowski <julianx.grajkowski@intel.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
 drivers/net/ice/base/ice_switch.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Patch

diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c
index 9d576cabf6..e5930a5010 100644
--- a/drivers/net/ice/base/ice_switch.c
+++ b/drivers/net/ice/base/ice_switch.c
@@ -7340,6 +7340,12 @@  static u16 ice_find_recp(struct ice_hw *hw, struct ice_prot_lkup_ext *lkup_exts,
 						hw->switch_info->recp_list, i,
 						&refresh_required, is_add))
 				continue;
+		} else {
+			if (!recp[i].recp_created)
+				if (ice_get_recp_frm_fw(hw,
+							hw->switch_info->recp_list, i,
+							&refresh_required, is_add))
+					continue;
 		}
 
 		/* Skip inverse action recipes */