diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/core/skbuff.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index d31bb36ae0dc..7cd1bc86d591 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -2744,8 +2744,12 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb) | |||
2744 | 2744 | ||
2745 | merge: | 2745 | merge: |
2746 | if (offset > headlen) { | 2746 | if (offset > headlen) { |
2747 | skbinfo->frags[0].page_offset += offset - headlen; | 2747 | unsigned int eat = offset - headlen; |
2748 | skbinfo->frags[0].size -= offset - headlen; | 2748 | |
2749 | skbinfo->frags[0].page_offset += eat; | ||
2750 | skbinfo->frags[0].size -= eat; | ||
2751 | skb->data_len -= eat; | ||
2752 | skb->len -= eat; | ||
2749 | offset = headlen; | 2753 | offset = headlen; |
2750 | } | 2754 | } |
2751 | 2755 | ||