Message ID | 20250406192351.3850007-1-chenyuan0y@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: libwx: handle page_pool_dev_alloc_pages error | expand |
On Sun, Apr 06, 2025 at 02:23:51PM -0500, Chenyuan Yang wrote: > page_pool_dev_alloc_pages could return NULL. There was a WARN_ON(!page) > but it would still proceed to use the NULL pointer and then crash. > > This is similar to commit 001ba0902046 > ("net: fec: handle page_pool_dev_alloc_pages error"). > > Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com> > --- > drivers/net/ethernet/wangxun/libwx/wx_lib.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > index 00b0b318df27..d567443b1b20 100644 > --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c > +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > @@ -310,7 +310,8 @@ static bool wx_alloc_mapped_page(struct wx_ring *rx_ring, > return true; > > page = page_pool_dev_alloc_pages(rx_ring->page_pool); > - WARN_ON(!page); > + if (unlikely(!page)) > + return false; > dma = page_pool_get_dma_addr(page); > > bi->page_dma = dma; Thanks for fixing, it is fine, however you need to add fixes tag. Probably: Fixes: 3c47e8ae113a ("net: libwx: Support to receive packets in NAPI") > -- > 2.34.1
Hi Michal, Thank you for your reply and suggestions. Would you like me to send a new patch (for example, [Patch v2]) with the "Fix" tag included? -Chenyuan On Mon, Apr 7, 2025 at 12:32 AM Michal Swiatkowski <michal.swiatkowski@linux.intel.com> wrote: > > On Sun, Apr 06, 2025 at 02:23:51PM -0500, Chenyuan Yang wrote: > > page_pool_dev_alloc_pages could return NULL. There was a WARN_ON(!page) > > but it would still proceed to use the NULL pointer and then crash. > > > > This is similar to commit 001ba0902046 > > ("net: fec: handle page_pool_dev_alloc_pages error"). > > > > Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com> > > --- > > drivers/net/ethernet/wangxun/libwx/wx_lib.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > index 00b0b318df27..d567443b1b20 100644 > > --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c > > @@ -310,7 +310,8 @@ static bool wx_alloc_mapped_page(struct wx_ring *rx_ring, > > return true; > > > > page = page_pool_dev_alloc_pages(rx_ring->page_pool); > > - WARN_ON(!page); > > + if (unlikely(!page)) > > + return false; > > dma = page_pool_get_dma_addr(page); > > > > bi->page_dma = dma; > > Thanks for fixing, it is fine, however you need to add fixes tag. > Probably: > Fixes: 3c47e8ae113a ("net: libwx: Support to receive packets in NAPI") > > > -- > > 2.34.1
On Mon, 7 Apr 2025 09:43:56 -0500 Chenyuan Yang wrote: > Hi Michal, > > Thank you for your reply and suggestions. > Would you like me to send a new patch (for example, [Patch v2]) with > the "Fix" tag included? Yes, and please don't top post.
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c index 00b0b318df27..d567443b1b20 100644 --- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c +++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c @@ -310,7 +310,8 @@ static bool wx_alloc_mapped_page(struct wx_ring *rx_ring, return true; page = page_pool_dev_alloc_pages(rx_ring->page_pool); - WARN_ON(!page); + if (unlikely(!page)) + return false; dma = page_pool_get_dma_addr(page); bi->page_dma = dma;
page_pool_dev_alloc_pages could return NULL. There was a WARN_ON(!page) but it would still proceed to use the NULL pointer and then crash. This is similar to commit 001ba0902046 ("net: fec: handle page_pool_dev_alloc_pages error"). Signed-off-by: Chenyuan Yang <chenyuan0y@gmail.com> --- drivers/net/ethernet/wangxun/libwx/wx_lib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)