Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 134301
b: refs/heads/master
c: 5603502
h: refs/heads/master
i:
  134299: 3401c05
v: v3
  • Loading branch information
Herbert Xu authored and David S. Miller committed Feb 6, 2009
1 parent 9678ac9 commit 8d77c56
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fe2918b098cdbf55b69ba8762bd3de0ae64f33ff
refs/heads/master: 56035022d86fff45299288cb372a42f752ba23fa
3 changes: 2 additions & 1 deletion trunk/net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -2391,7 +2391,8 @@ void *skb_gro_header(struct sk_buff *skb, unsigned int hlen)
return pskb_may_pull(skb, hlen) ? skb->data + offset : NULL;

return page_address(skb_shinfo(skb)->frags[0].page) +
skb_shinfo(skb)->frags[0].page_offset + offset;
skb_shinfo(skb)->frags[0].page_offset +
offset - skb_headlen(skb);
}
EXPORT_SYMBOL(skb_gro_header);

Expand Down
11 changes: 11 additions & 0 deletions trunk/net/core/skbuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -2678,6 +2678,17 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb)
p = nskb;

merge:
if (skb_gro_offset(skb) > skb_headlen(skb)) {
skb_shinfo(skb)->frags[0].page_offset +=
skb_gro_offset(skb) - skb_headlen(skb);
skb_shinfo(skb)->frags[0].size -=
skb_gro_offset(skb) - skb_headlen(skb);
skb_gro_reset_offset(skb);
skb_gro_pull(skb, skb_headlen(skb));
}

__skb_pull(skb, skb_gro_offset(skb));

p->prev->next = skb;
p->prev = skb;
skb_header_release(skb);
Expand Down

0 comments on commit 8d77c56

Please sign in to comment.