diff options
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/skbuff.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 56272ac6dfd8..2e5f2ca3bdcd 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -2585,8 +2585,9 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb) | |||
2585 | struct sk_buff *nskb; | 2585 | struct sk_buff *nskb; |
2586 | unsigned int headroom; | 2586 | unsigned int headroom; |
2587 | unsigned int hlen = p->data - skb_mac_header(p); | 2587 | unsigned int hlen = p->data - skb_mac_header(p); |
2588 | unsigned int len = skb->len; | ||
2588 | 2589 | ||
2589 | if (hlen + p->len + skb->len >= 65536) | 2590 | if (hlen + p->len + len >= 65536) |
2590 | return -E2BIG; | 2591 | return -E2BIG; |
2591 | 2592 | ||
2592 | if (skb_shinfo(p)->frag_list) | 2593 | if (skb_shinfo(p)->frag_list) |
@@ -2648,9 +2649,9 @@ merge: | |||
2648 | 2649 | ||
2649 | done: | 2650 | done: |
2650 | NAPI_GRO_CB(p)->count++; | 2651 | NAPI_GRO_CB(p)->count++; |
2651 | p->data_len += skb->len; | 2652 | p->data_len += len; |
2652 | p->truesize += skb->len; | 2653 | p->truesize += len; |
2653 | p->len += skb->len; | 2654 | p->len += len; |
2654 | 2655 | ||
2655 | NAPI_GRO_CB(skb)->same_flow = 1; | 2656 | NAPI_GRO_CB(skb)->same_flow = 1; |
2656 | return 0; | 2657 | return 0; |