|
@@ -1775,7 +1775,9 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
|
|
while (order) {
|
|
while (order) {
|
|
if (npages >= 1 << order) {
|
|
if (npages >= 1 << order) {
|
|
page = alloc_pages(sk->sk_allocation |
|
|
page = alloc_pages(sk->sk_allocation |
|
|
- __GFP_COMP | __GFP_NOWARN,
|
|
|
|
|
|
+ __GFP_COMP |
|
|
|
|
+ __GFP_NOWARN |
|
|
|
|
+ __GFP_NORETRY,
|
|
order);
|
|
order);
|
|
if (page)
|
|
if (page)
|
|
goto fill_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;
|
|
gfp_t gfp = prio;
|
|
|
|
|
|
if (order)
|
|
if (order)
|
|
- gfp |= __GFP_COMP | __GFP_NOWARN;
|
|
|
|
|
|
+ gfp |= __GFP_COMP | __GFP_NOWARN | __GFP_NORETRY;
|
|
pfrag->page = alloc_pages(gfp, order);
|
|
pfrag->page = alloc_pages(gfp, order);
|
|
if (likely(pfrag->page)) {
|
|
if (likely(pfrag->page)) {
|
|
pfrag->offset = 0;
|
|
pfrag->offset = 0;
|