From: Jun Yang <jun.y...@nxp.com> For user to identify dpaa2 mempool by operation index.
Signed-off-by: Jun Yang <jun.y...@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