Hi, How about use 2 local arrays for descs & bufs instead of the malloc/free?
Liron -----Original Message----- From: wangyunjian <[email protected]> Sent: Monday, 7 December 2020 13:37 To: [email protected] Cc: Liron Himi <[email protected]>; [email protected]; [email protected]; [email protected]; Yunjian Wang <[email protected]>; [email protected] Subject: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue flush External Email ---------------------------------------------------------------------- From: Yunjian Wang <[email protected]> The function rte_malloc() could return NULL, the return value need to be checked. Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") Cc: [email protected] Signed-off-by: Yunjian Wang <[email protected]> --- 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

