summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-04-09 11:45:04 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-25 22:28:36 -0700
commit56eb88828b78f6f3b11a2996350092a40745301f (patch)
tree27304b61f22f921d351301ef173009900e802ed9
parent29f6af7712c40045e7886d0fa356d97a6f9aba49 (diff)
downloadlinux-56eb88828b78f6f3b11a2996350092a40745301f.tar.gz
linux-56eb88828b78f6f3b11a2996350092a40745301f.tar.bz2
linux-56eb88828b78f6f3b11a2996350092a40745301f.zip
[SK_BUFF]: Fix missing offset adjustment in pskb_expand_head
Since we're increasing the headroom, the header offsets need to be increased by the same amount as well. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/skbuff.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index f927b6e8027e..4965df29768b 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -667,14 +667,15 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
skb->data += off;
#ifdef NET_SKBUFF_DATA_USES_OFFSET
skb->end = size;
+ off = nhead;
#else
skb->end = skb->head + size;
+#endif
/* {transport,network,mac}_header and tail are relative to skb->head */
skb->tail += off;
skb->transport_header += off;
skb->network_header += off;
skb->mac_header += off;
-#endif
skb->cloned = 0;
skb->nohdr = 0;
atomic_set(&skb_shinfo(skb)->dataref, 1);