diff options
Diffstat (limited to 'net/core/skbuff.c')
| -rw-r--r-- | net/core/skbuff.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 37317ffec146..2415d9cb9b89 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
| @@ -356,6 +356,8 @@ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask) | |||
| 356 | */ | 356 | */ |
| 357 | void *netdev_alloc_frag(unsigned int fragsz) | 357 | void *netdev_alloc_frag(unsigned int fragsz) |
| 358 | { | 358 | { |
| 359 | fragsz = SKB_DATA_ALIGN(fragsz); | ||
| 360 | |||
| 359 | return __netdev_alloc_frag(fragsz, GFP_ATOMIC); | 361 | return __netdev_alloc_frag(fragsz, GFP_ATOMIC); |
| 360 | } | 362 | } |
| 361 | EXPORT_SYMBOL(netdev_alloc_frag); | 363 | EXPORT_SYMBOL(netdev_alloc_frag); |
| @@ -369,6 +371,8 @@ static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask) | |||
| 369 | 371 | ||
| 370 | void *napi_alloc_frag(unsigned int fragsz) | 372 | void *napi_alloc_frag(unsigned int fragsz) |
| 371 | { | 373 | { |
| 374 | fragsz = SKB_DATA_ALIGN(fragsz); | ||
| 375 | |||
| 372 | return __napi_alloc_frag(fragsz, GFP_ATOMIC); | 376 | return __napi_alloc_frag(fragsz, GFP_ATOMIC); |
| 373 | } | 377 | } |
| 374 | EXPORT_SYMBOL(napi_alloc_frag); | 378 | EXPORT_SYMBOL(napi_alloc_frag); |
| @@ -5270,7 +5274,6 @@ struct sk_buff *alloc_skb_with_frags(unsigned long header_len, | |||
| 5270 | unsigned long chunk; | 5274 | unsigned long chunk; |
| 5271 | struct sk_buff *skb; | 5275 | struct sk_buff *skb; |
| 5272 | struct page *page; | 5276 | struct page *page; |
| 5273 | gfp_t gfp_head; | ||
| 5274 | int i; | 5277 | int i; |
| 5275 | 5278 | ||
| 5276 | *errcode = -EMSGSIZE; | 5279 | *errcode = -EMSGSIZE; |
| @@ -5280,12 +5283,8 @@ struct sk_buff *alloc_skb_with_frags(unsigned long header_len, | |||
| 5280 | if (npages > MAX_SKB_FRAGS) | 5283 | if (npages > MAX_SKB_FRAGS) |
| 5281 | return NULL; | 5284 | return NULL; |
| 5282 | 5285 | ||
| 5283 | gfp_head = gfp_mask; | ||
| 5284 | if (gfp_head & __GFP_DIRECT_RECLAIM) | ||
| 5285 | gfp_head |= __GFP_RETRY_MAYFAIL; | ||
| 5286 | |||
| 5287 | *errcode = -ENOBUFS; | 5286 | *errcode = -ENOBUFS; |
| 5288 | skb = alloc_skb(header_len, gfp_head); | 5287 | skb = alloc_skb(header_len, gfp_mask); |
| 5289 | if (!skb) | 5288 | if (!skb) |
| 5290 | return NULL; | 5289 | return NULL; |
| 5291 | 5290 | ||
