hv_netvsc: Allocate memory in netvsc_dma_map() with GFP_ATOMIC
authorMichael Kelley <mikelley@microsoft.com>
Mon, 6 Feb 2023 20:11:57 +0000 (12:11 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Feb 2023 18:11:40 +0000 (19:11 +0100)
commit c6aa9d3b43cd11ac13a8220368a3b0483c6751d4 upstream.

Memory allocations in the network transmit path must use GFP_ATOMIC
so they won't sleep.

Reported-by: Paolo Abeni <pabeni@redhat.com>
Link: https://lore.kernel.org/lkml/8a4d08f94d3e6fe8b6da68440eaa89a088ad84f9.camel@redhat.com/
Fixes: 846da38de0e8 ("net: netvsc: Add Isolation VM support for netvsc driver")
Cc: stable@vger.kernel.org
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Link: https://lore.kernel.org/r/1675714317-48577-1-git-send-email-mikelley@microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/hyperv/netvsc.c

index e02d1e3..79f4e13 100644 (file)
@@ -1034,7 +1034,7 @@ static int netvsc_dma_map(struct hv_device *hv_dev,
 
        packet->dma_range = kcalloc(page_count,
                                    sizeof(*packet->dma_range),
-                                   GFP_KERNEL);
+                                   GFP_ATOMIC);
        if (!packet->dma_range)
                return -ENOMEM;