diff options
Diffstat (limited to 'net/core/sock.c')
| -rw-r--r-- | net/core/sock.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/net/core/sock.c b/net/core/sock.c index 0c127dcdf6a8..5b6a9431b017 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1775,7 +1775,9 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,  			while (order) {  				if (npages >= 1 << order) {  					page = alloc_pages(sk->sk_allocation | -							   __GFP_COMP | __GFP_NOWARN, +							   __GFP_COMP | +							   __GFP_NOWARN | +							   __GFP_NORETRY,  							   order);  					if (page)  						goto fill_page; @@ -1845,7 +1847,7 @@ bool skb_page_frag_refill(unsigned int sz, struct page_frag *pfrag, gfp_t prio)  		gfp_t gfp = prio;  		if (order) -			gfp |= __GFP_COMP | __GFP_NOWARN; +			gfp |= __GFP_COMP | __GFP_NOWARN | __GFP_NORETRY;  		pfrag->page = alloc_pages(gfp, order);  		if (likely(pfrag->page)) {  			pfrag->offset = 0; |