Hi, How about use 2 local arrays for descs & bufs instead of the malloc/free?
Liron -----Original Message----- From: wangyunjian <wangyunj...@huawei.com> Sent: Monday, 7 December 2020 13:37 To: dev@dpdk.org Cc: Liron Himi <lir...@marvell.com>; z...@semihalf.com; jerry.lili...@huawei.com; xudin...@huawei.com; Yunjian Wang <wangyunj...@huawei.com>; sta...@dpdk.org Subject: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue flush External Email ---------------------------------------------------------------------- From: Yunjian Wang <wangyunj...@huawei.com> The function rte_malloc() could return NULL, the return value need to be checked. Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") Cc: sta...@dpdk.org Signed-off-by: Yunjian Wang <wangyunj...@huawei.com> --- drivers/net/mvneta/mvneta_rxtx.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/net/mvneta/mvneta_rxtx.c b/drivers/net/mvneta/mvneta_rxtx.c index 10b6f57584..dfa7ecc090 100644 --- a/drivers/net/mvneta/mvneta_rxtx.c +++ b/drivers/net/mvneta/mvneta_rxtx.c @@ -872,7 +872,17 @@ mvneta_rx_queue_flush(struct mvneta_rxq *rxq) int ret, i; descs = rte_malloc("rxdesc", MRVL_NETA_RXD_MAX * sizeof(*descs), 0); + if (descs == NULL) { + MVNETA_LOG(ERR, "Failed to allocate descs."); + return; + } + bufs = rte_malloc("buffs", MRVL_NETA_RXD_MAX * sizeof(*bufs), 0); + if (bufs == NULL) { + MVNETA_LOG(ERR, "Failed to allocate bufs."); + rte_free(descs); + return; + } do { num = MRVL_NETA_RXD_MAX; -- 2.23.0