From: Fabian Druschke r8169 allocates order-2 pages for RX buffers during rtl_open(). Under heavy memory fragmentation this allocation may trigger the global OOM killer, causing unrelated user processes to be killed. Use a GFP mask that avoids OOM killer invocation so the allocation can fail gracefully and rtl_open() returns -ENOMEM instead. Cc: stable@vger.kernel.org Signed-off-by: Fabian Druschke --- drivers/net/ethernet/realtek/r8169_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 3507c2e28110..3525e889ec1c 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -3952,7 +3952,8 @@ static struct page *rtl8169_alloc_rx_data(struct rtl8169_private *tp, dma_addr_t mapping; struct page *data; - data = alloc_pages_node(node, GFP_KERNEL, get_order(R8169_RX_BUF_SIZE)); + gfp_t gfp = GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN; + data = alloc_pages_node(node, gfp, get_order(R8169_RX_BUF_SIZE)); if (!data) return NULL; -- 2.52.0