[PATCH 2/2] gve: Fix error return code in gve_prefill_rx_pages()

Khalid Elmously khalid.elmously at canonical.com
Wed May 31 09:12:58 UTC 2023


From: Yang Yingliang <yangyingliang at huawei.com>

BugLink: https://bugs.launchpad.net/bugs/2021830

If alloc_page() fails in gve_prefill_rx_pages(), it should return
an error code in the error path.

Fixes: 82fd151d38d9 ("gve: Reduce alloc and copy costs in the GQ rx path")
Cc: Jeroen de Borst <jeroendb at google.com>
Cc: Catherine Sullivan <csully at google.com>
Cc: Shailend Chand <shailend at google.com>
Cc: "David S. Miller" <davem at davemloft.net>
Signed-off-by: Yang Yingliang <yangyingliang at huawei.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit 64c426dfbbd2710e4bcac42aaced21fe10f05fde)
Signed-off-by: Khalid Elmously <khalid.elmously at canonical.com>
---
 drivers/net/ethernet/google/gve/gve_rx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/google/gve/gve_rx.c b/drivers/net/ethernet/google/gve/gve_rx.c
index e2f4494c65fbe..1f55137722b04 100644
--- a/drivers/net/ethernet/google/gve/gve_rx.c
+++ b/drivers/net/ethernet/google/gve/gve_rx.c
@@ -150,8 +150,10 @@ static int gve_prefill_rx_pages(struct gve_rx_ring *rx)
 		for (j = 0; j < rx->qpl_copy_pool_mask + 1; j++) {
 			struct page *page = alloc_page(GFP_KERNEL);
 
-			if (!page)
+			if (!page) {
+				err = -ENOMEM;
 				goto alloc_err_qpl;
+			}
 
 			rx->qpl_copy_pool[j].page = page;
 			rx->qpl_copy_pool[j].page_offset = 0;
-- 
2.34.1




More information about the kernel-team mailing list