From: Yunjian Wang <wangyunjian@huawei.com> The function rte_malloc() could return NULL, the return value need to be checked. Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang <wangyunjian@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
Hi, How about use 2 local arrays for descs & bufs instead of the malloc/free? Liron -----Original Message----- From: wangyunjian <wangyunjian@huawei.com> Sent: Monday, 7 December 2020 13:37 To: dev@dpdk.org Cc: Liron Himi <lironh@marvell.com>; zr@semihalf.com; jerry.lilijun@huawei.com; xudingke@huawei.com; Yunjian Wang <wangyunjian@huawei.com>; stable@dpdk.org Subject: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue flush External Email ---------------------------------------------------------------------- From: Yunjian Wang <wangyunjian@huawei.com> The function rte_malloc() could return NULL, the return value need to be checked. Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang <wangyunjian@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
> -----Original Message----- > From: Liron Himi [mailto:lironh@marvell.com] > Sent: Monday, December 7, 2020 8:38 PM > To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org > Cc: zr@semihalf.com; Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke > <xudingke@huawei.com>; stable@dpdk.org; Liron Himi <lironh@marvell.com> > Subject: RE: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue > flush > > Hi, > > How about use 2 local arrays for descs & bufs instead of the malloc/free? The definition of these 2 arrays is 2048. If it is a local array, is it too large? > > Liron > > > -----Original Message----- > From: wangyunjian <wangyunjian@huawei.com> > Sent: Monday, 7 December 2020 13:37 > To: dev@dpdk.org > Cc: Liron Himi <lironh@marvell.com>; zr@semihalf.com; > jerry.lilijun@huawei.com; xudingke@huawei.com; Yunjian Wang > <wangyunjian@huawei.com>; stable@dpdk.org > Subject: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue flush > > External Email > > ---------------------------------------------------------------------- > From: Yunjian Wang <wangyunjian@huawei.com> > > The function rte_malloc() could return NULL, the return value need to be > checked. > > Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") > Cc: stable@dpdk.org > > Signed-off-by: Yunjian Wang <wangyunjian@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
-----Original Message----- From: wangyunjian <wangyunjian@huawei.com> Sent: Monday, 7 December 2020 15:08 To: Liron Himi <lironh@marvell.com>; dev@dpdk.org Cc: zr@semihalf.com; Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke <xudingke@huawei.com>; stable@dpdk.org Subject: RE: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx queue flush > -----Original Message----- > From: Liron Himi [mailto:lironh@marvell.com] > Sent: Monday, December 7, 2020 8:38 PM > To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org > Cc: zr@semihalf.com; Lilijun (Jerry) <jerry.lilijun@huawei.com>; > xudingke <xudingke@huawei.com>; stable@dpdk.org; Liron Himi > <lironh@marvell.com> > Subject: RE: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in > rx queue flush > > Hi, > > How about use 2 local arrays for descs & bufs instead of the malloc/free? The definition of these 2 arrays is 2048. If it is a local array, is it too large? [L.H.] I'm not sure. Lets stay with your original patch. Acked-by: Liron Himi <lironh@marvell.com> > > Liron > > > -----Original Message----- > From: wangyunjian <wangyunjian@huawei.com> > Sent: Monday, 7 December 2020 13:37 > To: dev@dpdk.org > Cc: Liron Himi <lironh@marvell.com>; zr@semihalf.com; > jerry.lilijun@huawei.com; xudingke@huawei.com; Yunjian Wang > <wangyunjian@huawei.com>; stable@dpdk.org > Subject: [EXT] [dpdk-dev] [PATCH] net/mvneta: check allocation in rx > queue flush > > External Email > > ---------------------------------------------------------------------- > From: Yunjian Wang <wangyunjian@huawei.com> > > The function rte_malloc() could return NULL, the return value need to > be checked. > > Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") > Cc: stable@dpdk.org > > Signed-off-by: Yunjian Wang <wangyunjian@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
On Mon, Dec 7, 2020 at 5:07 PM wangyunjian <wangyunjian@huawei.com> wrote: > > From: Yunjian Wang <wangyunjian@huawei.com> > > The function rte_malloc() could return NULL, the return value > need to be checked. > > Fixes: ce7ea764597e ("net/mvneta: support Rx/Tx") > Cc: stable@dpdk.org > > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com> Acked-by: Liron Himi <lironh@marvell.com> Applied to dpdk-next-net-mrvl/for-main. Thanks > --- > 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 >