diff options
| author | 2011-02-16 09:36:05 +0000 | |
|---|---|---|
| committer | 2011-02-16 09:44:30 +0000 | |
| commit | 9035a97a32836d0e456ddafaaf249a844e6e4b5e (patch) | |
| tree | 41ec3db083bdb46cd831f0d39db1fe294ae7d55f /net/core/skbuff.c | |
| parent | drm/i915: Move the lvds OpRegion lid detection code to panel and reuse for eDP (diff) | |
| parent | agp/intel: Experiment with a 855GM GWB bit (diff) | |
| download | linux-dev-9035a97a32836d0e456ddafaaf249a844e6e4b5e.tar.xz linux-dev-9035a97a32836d0e456ddafaaf249a844e6e4b5e.zip | |
Merge branch 'drm-intel-fixes' into drm-intel-next
Grab the latest stabilisation bits from -fixes and some suspend and
resume fixes from linus.
Conflicts:
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_irq.c
Diffstat (limited to 'net/core/skbuff.c')
| -rw-r--r-- | net/core/skbuff.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index d31bb36ae0dc..d883dcc78b6b 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -210,6 +210,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask, shinfo = skb_shinfo(skb); memset(shinfo, 0, offsetof(struct skb_shared_info, dataref)); atomic_set(&shinfo->dataref, 1); + kmemcheck_annotate_variable(shinfo->destructor_arg); if (fclone) { struct sk_buff *child = skb + 1; @@ -2744,8 +2745,12 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb) merge: if (offset > headlen) { - skbinfo->frags[0].page_offset += offset - headlen; - skbinfo->frags[0].size -= offset - headlen; + unsigned int eat = offset - headlen; + + skbinfo->frags[0].page_offset += eat; + skbinfo->frags[0].size -= eat; + skb->data_len -= eat; + skb->len -= eat; offset = headlen; } |
