diff options
author | Catherine Sullivan <csully@google.com> | 2021-10-06 05:42:21 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-10-06 17:04:26 +0300 |
commit | d4b111fda69a01e0a7439d05993f5dad567c93aa (patch) | |
tree | 14d58c3a8453e4e336d11838bf79083862efdbb0 /drivers | |
parent | 922aa9bcac92b3ab6a423526a8e785b35a60b441 (diff) | |
download | linux-d4b111fda69a01e0a7439d05993f5dad567c93aa.tar.xz |
gve: Properly handle errors in gve_assign_qpl
Ignored errors would result in crash.
Fixes: ede3fcf5ec67f ("gve: Add support for raw addressing to the rx path")
Signed-off-by: Catherine Sullivan <csully@google.com>
Signed-off-by: Jeroen de Borst <jeroendb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/google/gve/gve_rx.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/google/gve/gve_rx.c b/drivers/net/ethernet/google/gve/gve_rx.c index bb8261368250..94941d4e4744 100644 --- a/drivers/net/ethernet/google/gve/gve_rx.c +++ b/drivers/net/ethernet/google/gve/gve_rx.c @@ -104,8 +104,14 @@ static int gve_prefill_rx_pages(struct gve_rx_ring *rx) if (!rx->data.page_info) return -ENOMEM; - if (!rx->data.raw_addressing) + if (!rx->data.raw_addressing) { rx->data.qpl = gve_assign_rx_qpl(priv); + if (!rx->data.qpl) { + kvfree(rx->data.page_info); + rx->data.page_info = NULL; + return -ENOMEM; + } + } for (i = 0; i < slots; i++) { if (!rx->data.raw_addressing) { struct page *page = rx->data.qpl->pages[i]; |