[PATCH 8/9] mempool/dpaa2: mempool operation index
Gagandeep Singh
g.singh at nxp.com
Tue May 20 07:51:32 CEST 2025
From: Jun Yang <jun.yang at nxp.com>
For user to identify dpaa2 mempool by operation index.
Signed-off-by: Jun Yang <jun.yang at nxp.com>
---
drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 20 +++++++++++++++++++-
drivers/mempool/dpaa2/dpaa2_hw_mempool.h | 5 ++++-
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c
index 09729d2828..118eb76db7 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.c
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.c
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-3-Clause
*
* Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
- * Copyright 2016-2019 NXP
+ * Copyright 2016-2019,2022-2025 NXP
*
*/
@@ -38,6 +38,14 @@ RTE_EXPORT_INTERNAL_SYMBOL(rte_dpaa2_bpid_info)
struct dpaa2_bp_info *rte_dpaa2_bpid_info;
static struct dpaa2_bp_list *h_bp_list;
+static int16_t s_dpaa2_pool_ops_idx = RTE_MEMPOOL_MAX_OPS_IDX;
+
+RTE_EXPORT_INTERNAL_SYMBOL(rte_dpaa2_mpool_get_ops_idx)
+int rte_dpaa2_mpool_get_ops_idx(void)
+{
+ return s_dpaa2_pool_ops_idx;
+}
+
static int
rte_hw_mbuf_create_pool(struct rte_mempool *mp)
{
@@ -119,6 +127,14 @@ rte_hw_mbuf_create_pool(struct rte_mempool *mp)
bp_list->buf_pool.dpbp_node = avail_dpbp;
/* Identification for our offloaded pool_data structure */
bp_list->dpaa2_ops_index = mp->ops_index;
+ if (s_dpaa2_pool_ops_idx == RTE_MEMPOOL_MAX_OPS_IDX) {
+ s_dpaa2_pool_ops_idx = mp->ops_index;
+ } else if (s_dpaa2_pool_ops_idx != mp->ops_index) {
+ DPAA2_MEMPOOL_ERR("Only single ops index only");
+ ret = -EINVAL;
+ goto err4;
+ }
+
bp_list->next = h_bp_list;
bp_list->mp = mp;
@@ -150,6 +166,8 @@ rte_hw_mbuf_create_pool(struct rte_mempool *mp)
}
return 0;
+err4:
+ rte_free(bp_list);
err3:
rte_free(bp_info);
err2:
diff --git a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
index 9e21823fb6..8b2718bfa1 100644
--- a/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
+++ b/drivers/mempool/dpaa2/dpaa2_hw_mempool.h
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: BSD-3-Clause
*
* Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.
- * Copyright 2016-2019 NXP
+ * Copyright 2016-2024 NXP
*
*/
@@ -65,4 +65,7 @@ __rte_internal
int rte_dpaa2_mbuf_alloc_bulk(struct rte_mempool *pool,
void **obj_table, unsigned int count);
+__rte_internal
+int rte_dpaa2_mpool_get_ops_idx(void);
+
#endif /* _DPAA2_HW_DPBP_H_ */
--
2.25.1
More information about the dev
mailing list