diff --git a/net/core/skbuff.c b/net/core/skbuff.c index fab4599ba8b261..dd85d2e287a8bf 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -1165,11 +1165,11 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, } else { skb_free_head(skb); } - off = (data + nhead) - skb->head; + off = (skb->data - skb->head) + nhead; skb->head = data; skb->head_frag = 0; - skb->data += off; + skb->data = skb->head + off; #ifdef NET_SKBUFF_DATA_USES_OFFSET skb->end = size; off = nhead;