From: Mike Baucom <michael.bau...@broadcom.com> When a Internal EM entry fails insertion, the allocated index needs to be pushed back to the allocation stack.
Signed-off-by: Mike Baucom <michael.bau...@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khapa...@broadcom.com> --- drivers/net/bnxt/tf_core/tf_em_internal.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/tf_core/tf_em_internal.c b/drivers/net/bnxt/tf_core/tf_em_internal.c index 462d0fa76..c95515b1b 100644 --- a/drivers/net/bnxt/tf_core/tf_em_internal.c +++ b/drivers/net/bnxt/tf_core/tf_em_internal.c @@ -175,8 +175,11 @@ tf_em_insert_int_entry(struct tf *tfp, &rptr_index, &rptr_entry, &num_of_entries); - if (rc) + if (rc) { + /* Free the allocated index before returning */ + stack_push(pool, index); return -1; + } PMD_DRV_LOG (DEBUG, -- 2.21.1 (Apple Git-122.3)