tunnel->err_count = 0;
}
- skb->h.raw = skb->nh.raw;
-
max_headroom = LL_RESERVED_SPACE(tdev) + gre_hlen;
if (skb_headroom(skb) < max_headroom || skb_cloned(skb) || skb_shared(skb)) {
old_iph = skb->nh.iph;
}
+ skb->h.raw = skb->nh.raw;
skb->nh.raw = skb_push(skb, gre_hlen);
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
dst_release(skb->dst);
tunnel->err_count = 0;
}
- skb->h.raw = skb->nh.raw;
-
/*
* Okay, now see if we can stuff it in the buffer as-is.
*/
old_iph = skb->nh.iph;
}
+ skb->h.raw = skb->nh.raw;
skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
dst_release(skb->dst);
tunnel->err_count = 0;
}
- skb->h.raw = skb->nh.raw;
-
/*
* Okay, now see if we can stuff it in the buffer as-is.
*/
iph6 = skb->nh.ipv6h;
}
+ skb->h.raw = skb->nh.raw;
skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
dst_release(skb->dst);