[02/11] net/bnxt: allow usage of more resources in flow db

Message ID 1586962156-11179-3-git-send-email-venkatkumar.duvvuru@broadcom.com (mailing list archive)
State Superseded, archived
Delegated to: Ajit Khaparde
Headers
Series enhancements to host based flow table management |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Venkat Duvvuru April 15, 2020, 2:49 p.m. UTC
  From: Mike Baucom <michael.baucom@broadcom.com>

Allow the flow db resources to be more effectively utilized.

Reviewed-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Mike Baucom <michael.baucom@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
---
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Patch

diff --git a/drivers/net/bnxt/tf_ulp/ulp_flow_db.c b/drivers/net/bnxt/tf_ulp/ulp_flow_db.c
index aed5078..e99e94a 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_flow_db.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_flow_db.c
@@ -331,6 +331,10 @@  int32_t ulp_flow_db_fid_alloc(struct bnxt_ulp_context		*ulp_ctxt,
 		BNXT_TF_DBG(ERR, "Flow database has reached max flows\n");
 		return -ENOMEM;
 	}
+	if (flow_tbl->tail_index <= (flow_tbl->head_index + 1)) {
+		BNXT_TF_DBG(ERR, "Flow database has reached max resources\n");
+		return -ENOMEM;
+	}
 	*fid = flow_tbl->flow_tbl_stack[flow_tbl->head_index];
 	flow_tbl->head_index++;
 	ulp_flow_db_active_flow_set(flow_tbl, *fid, 1);
@@ -385,7 +389,7 @@  int32_t	ulp_flow_db_resource_add(struct bnxt_ulp_context	*ulp_ctxt,
 	}
 
 	/* check for max resource */
-	if ((flow_tbl->num_flows + 1) >= flow_tbl->tail_index) {
+	if ((flow_tbl->head_index + 1) >= flow_tbl->tail_index) {
 		BNXT_TF_DBG(ERR, "Flow db has reached max resources\n");
 		return -ENOMEM;
 	}