[v3] mempool/cnxk: fix bug in batch alloc issue failure path

Message ID 20220218072712.2946331-1-asekhar@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series [v3] mempool/cnxk: fix bug in batch alloc issue failure path |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Ashwin Sekhar T K Feb. 18, 2022, 7:27 a.m. UTC
  Fix bug in batch alloc issue failure path where it was
enqueuing invalid pointers back to the pool. The code
should rightly be falling back to default dequeue path
in such cases.

Fixes: 91531e63f4 ("mempool/cnxk: add cn10k batch dequeue")

Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
---
 drivers/mempool/cnxk/cn10k_mempool_ops.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Jerin Jacob Feb. 18, 2022, 8:37 a.m. UTC | #1
On Fri, Feb 18, 2022 at 12:54 PM Ashwin Sekhar T K <asekhar@marvell.com> wrote:
>
> Fix bug in batch alloc issue failure path where it was
> enqueuing invalid pointers back to the pool. The code
> should rightly be falling back to default dequeue path
> in such cases.
>
> Fixes: 91531e63f4 ("mempool/cnxk: add cn10k batch dequeue")
Cc: stable@dpdk.org


>
> Signed-off-by: Ashwin Sekhar T K <asekhar@marvell.com>
> ---

Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied to dpdk-next-net-mrvl/for-next-net. Thanks

>  drivers/mempool/cnxk/cn10k_mempool_ops.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mempool/cnxk/cn10k_mempool_ops.c b/drivers/mempool/cnxk/cn10k_mempool_ops.c
> index 4c669b878f..6ebbf91de5 100644
> --- a/drivers/mempool/cnxk/cn10k_mempool_ops.c
> +++ b/drivers/mempool/cnxk/cn10k_mempool_ops.c
> @@ -202,7 +202,7 @@ cn10k_mempool_deq(struct rte_mempool *mp, void **obj_table, unsigned int n)
>                                                     BATCH_ALLOC_SZ, 0, 1);
>                 /* If issue fails, try falling back to default alloc */
>                 if (unlikely(rc))
> -                       return cn10k_mempool_enq(mp, obj_table, n);
> +                       return cnxk_mempool_deq(mp, obj_table, n);
>                 mem->status = BATCH_ALLOC_OP_ISSUED;
>         }
>
> --
> 2.32.0
>
  

Patch

diff --git a/drivers/mempool/cnxk/cn10k_mempool_ops.c b/drivers/mempool/cnxk/cn10k_mempool_ops.c
index 4c669b878f..6ebbf91de5 100644
--- a/drivers/mempool/cnxk/cn10k_mempool_ops.c
+++ b/drivers/mempool/cnxk/cn10k_mempool_ops.c
@@ -202,7 +202,7 @@  cn10k_mempool_deq(struct rte_mempool *mp, void **obj_table, unsigned int n)
 						    BATCH_ALLOC_SZ, 0, 1);
 		/* If issue fails, try falling back to default alloc */
 		if (unlikely(rc))
-			return cn10k_mempool_enq(mp, obj_table, n);
+			return cnxk_mempool_deq(mp, obj_table, n);
 		mem->status = BATCH_ALLOC_OP_ISSUED;
 	}