From: Sunil Kumar Kori <sk...@marvell.com>

By default, SQB pool is created with max (512 buffers) +
extra threshold buffers and aura limit is set to 512 + thr.

But while clean up, aura limit is reset to MAX (512 buffers)
only before destroying the pool.

Hence while destroying the pool, only 512 buffers are cleaned
from aura and extra threshold buffers are left as it is.

At later stage if same SQB pool is created then H/W
throws error for extra threshold buffers that it is already
in pool.

Fixes: 780f90e951a5 ("common/cnxk: restore NIX SQB pool limit before destroy")

Signed-off-by: Sunil Kumar Kori <sk...@marvell.com>
---
 drivers/common/cnxk/roc_nix_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/common/cnxk/roc_nix_queue.c 
b/drivers/common/cnxk/roc_nix_queue.c
index 356367624f..8737728dd5 100644
--- a/drivers/common/cnxk/roc_nix_queue.c
+++ b/drivers/common/cnxk/roc_nix_queue.c
@@ -2057,7 +2057,7 @@ roc_nix_sq_fini(struct roc_nix_sq *sq)
        /* Restore limit to max SQB count that the pool was created
         * for aura drain to succeed.
         */
-       roc_npa_aura_limit_modify(sq->aura_handle, NIX_MAX_SQB);
+       roc_npa_aura_limit_modify(sq->aura_handle, sq->aura_sqb_bufs);
        rc |= roc_npa_pool_destroy(sq->aura_handle);
        plt_free(sq->fc);
        plt_free(sq->sqe_mem);
-- 
2.34.1

Reply via email to