diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_gre.c | 3 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 3 | ||||
-rw-r--r-- | net/ipv4/ipip.c | 3 | ||||
-rw-r--r-- | net/ipv4/ipmr.c | 3 | ||||
-rw-r--r-- | net/ipv4/ipvs/ip_vs_xmit.c | 3 | ||||
-rw-r--r-- | net/ipv4/xfrm4_mode_beet.c | 3 | ||||
-rw-r--r-- | net/ipv4/xfrm4_mode_transport.c | 4 | ||||
-rw-r--r-- | net/ipv4/xfrm4_mode_tunnel.c | 3 |
8 files changed, 17 insertions, 8 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index ced2c4baf174..f84ca6668fb9 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c | |||
@@ -828,7 +828,8 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) | |||
828 | } | 828 | } |
829 | 829 | ||
830 | skb->h.raw = skb->nh.raw; | 830 | skb->h.raw = skb->nh.raw; |
831 | skb->nh.raw = skb_push(skb, gre_hlen); | 831 | skb_push(skb, gre_hlen); |
832 | skb_reset_network_header(skb); | ||
832 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); | 833 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); |
833 | IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | | 834 | IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | |
834 | IPSKB_REROUTED); | 835 | IPSKB_REROUTED); |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 32f1a23a80f9..d329718a8e8c 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -503,7 +503,8 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*)) | |||
503 | if (frag) { | 503 | if (frag) { |
504 | frag->ip_summed = CHECKSUM_NONE; | 504 | frag->ip_summed = CHECKSUM_NONE; |
505 | frag->h.raw = frag->data; | 505 | frag->h.raw = frag->data; |
506 | frag->nh.raw = __skb_push(frag, hlen); | 506 | __skb_push(frag, hlen); |
507 | skb_reset_network_header(frag); | ||
507 | memcpy(frag->nh.raw, iph, hlen); | 508 | memcpy(frag->nh.raw, iph, hlen); |
508 | iph = frag->nh.iph; | 509 | iph = frag->nh.iph; |
509 | iph->tot_len = htons(frag->len); | 510 | iph->tot_len = htons(frag->len); |
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index 5f886c892861..843cc09f961f 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c | |||
@@ -619,7 +619,8 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) | |||
619 | } | 619 | } |
620 | 620 | ||
621 | skb->h.raw = skb->nh.raw; | 621 | skb->h.raw = skb->nh.raw; |
622 | skb->nh.raw = skb_push(skb, sizeof(struct iphdr)); | 622 | skb_push(skb, sizeof(struct iphdr)); |
623 | skb_reset_network_header(skb); | ||
623 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); | 624 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); |
624 | IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | | 625 | IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED | |
625 | IPSKB_REROUTED); | 626 | IPSKB_REROUTED); |
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index f73f4e402f72..05c82ca45aaf 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -1593,7 +1593,8 @@ int ipmr_get_route(struct sk_buff *skb, struct rtmsg *rtm, int nowait) | |||
1593 | return -ENOMEM; | 1593 | return -ENOMEM; |
1594 | } | 1594 | } |
1595 | 1595 | ||
1596 | skb2->nh.raw = skb_push(skb2, sizeof(struct iphdr)); | 1596 | skb_push(skb2, sizeof(struct iphdr)); |
1597 | skb_reset_network_header(skb2); | ||
1597 | skb2->nh.iph->ihl = sizeof(struct iphdr)>>2; | 1598 | skb2->nh.iph->ihl = sizeof(struct iphdr)>>2; |
1598 | skb2->nh.iph->saddr = rt->rt_src; | 1599 | skb2->nh.iph->saddr = rt->rt_src; |
1599 | skb2->nh.iph->daddr = rt->rt_dst; | 1600 | skb2->nh.iph->daddr = rt->rt_dst; |
diff --git a/net/ipv4/ipvs/ip_vs_xmit.c b/net/ipv4/ipvs/ip_vs_xmit.c index f73c5acf5dd1..d1403d0855ed 100644 --- a/net/ipv4/ipvs/ip_vs_xmit.c +++ b/net/ipv4/ipvs/ip_vs_xmit.c | |||
@@ -385,7 +385,8 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
385 | /* fix old IP header checksum */ | 385 | /* fix old IP header checksum */ |
386 | ip_send_check(old_iph); | 386 | ip_send_check(old_iph); |
387 | 387 | ||
388 | skb->nh.raw = skb_push(skb, sizeof(struct iphdr)); | 388 | skb_push(skb, sizeof(struct iphdr)); |
389 | skb_reset_network_header(skb); | ||
389 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); | 390 | memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); |
390 | 391 | ||
391 | /* drop old route */ | 392 | /* drop old route */ |
diff --git a/net/ipv4/xfrm4_mode_beet.c b/net/ipv4/xfrm4_mode_beet.c index d419e15d9803..eaaf3565f3b2 100644 --- a/net/ipv4/xfrm4_mode_beet.c +++ b/net/ipv4/xfrm4_mode_beet.c | |||
@@ -40,7 +40,8 @@ static int xfrm4_beet_output(struct xfrm_state *x, struct sk_buff *skb) | |||
40 | if (unlikely(optlen)) | 40 | if (unlikely(optlen)) |
41 | hdrlen += IPV4_BEET_PHMAXLEN - (optlen & 4); | 41 | hdrlen += IPV4_BEET_PHMAXLEN - (optlen & 4); |
42 | 42 | ||
43 | skb->nh.raw = skb_push(skb, x->props.header_len + hdrlen); | 43 | skb_push(skb, x->props.header_len + hdrlen); |
44 | skb_reset_network_header(skb); | ||
44 | top_iph = skb->nh.iph; | 45 | top_iph = skb->nh.iph; |
45 | skb->h.raw += sizeof(*iph) - hdrlen; | 46 | skb->h.raw += sizeof(*iph) - hdrlen; |
46 | 47 | ||
diff --git a/net/ipv4/xfrm4_mode_transport.c b/net/ipv4/xfrm4_mode_transport.c index 92676b7e4034..290c0f2e7c29 100644 --- a/net/ipv4/xfrm4_mode_transport.c +++ b/net/ipv4/xfrm4_mode_transport.c | |||
@@ -32,7 +32,9 @@ static int xfrm4_transport_output(struct xfrm_state *x, struct sk_buff *skb) | |||
32 | ihl = iph->ihl * 4; | 32 | ihl = iph->ihl * 4; |
33 | skb->h.raw += ihl; | 33 | skb->h.raw += ihl; |
34 | 34 | ||
35 | skb->nh.raw = memmove(skb_push(skb, x->props.header_len), iph, ihl); | 35 | skb_push(skb, x->props.header_len); |
36 | skb_reset_network_header(skb); | ||
37 | memmove(skb->nh.raw, iph, ihl); | ||
36 | return 0; | 38 | return 0; |
37 | } | 39 | } |
38 | 40 | ||
diff --git a/net/ipv4/xfrm4_mode_tunnel.c b/net/ipv4/xfrm4_mode_tunnel.c index ffc6005d1d55..bec851f278e5 100644 --- a/net/ipv4/xfrm4_mode_tunnel.c +++ b/net/ipv4/xfrm4_mode_tunnel.c | |||
@@ -49,7 +49,8 @@ static int xfrm4_tunnel_output(struct xfrm_state *x, struct sk_buff *skb) | |||
49 | iph = skb->nh.iph; | 49 | iph = skb->nh.iph; |
50 | skb->h.ipiph = iph; | 50 | skb->h.ipiph = iph; |
51 | 51 | ||
52 | skb->nh.raw = skb_push(skb, x->props.header_len); | 52 | skb_push(skb, x->props.header_len); |
53 | skb_reset_network_header(skb); | ||
53 | top_iph = skb->nh.iph; | 54 | top_iph = skb->nh.iph; |
54 | 55 | ||
55 | top_iph->ihl = 5; | 56 | top_iph->ihl = 5; |