Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2d1bca7 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by David S. Miller
Browse files

[SK_BUFF]: Use skb_reset_network_header in skb_push cases



skb_push updates and returns skb->data, so we can just call
skb_reset_network_header after the call to skb_push.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c1d2bbe1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -308,7 +308,9 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
	if (udph->check == 0)
		udph->check = CSUM_MANGLED_0;

	skb->nh.iph = iph = (struct iphdr *)skb_push(skb, sizeof(*iph));
	skb_push(skb, sizeof(*iph));
	skb_reset_network_header(skb);
	iph = skb->nh.iph;

	/* iph->version = 4; iph->ihl = 5; */
	put_unaligned(0x45, (unsigned char *)iph);
+2 −1
Original line number Diff line number Diff line
@@ -828,7 +828,8 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
	}

	skb->h.raw = skb->nh.raw;
	skb->nh.raw = skb_push(skb, gre_hlen);
	skb_push(skb, gre_hlen);
	skb_reset_network_header(skb);
	memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
	IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED |
			      IPSKB_REROUTED);
+2 −1
Original line number Diff line number Diff line
@@ -503,7 +503,8 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
			if (frag) {
				frag->ip_summed = CHECKSUM_NONE;
				frag->h.raw = frag->data;
				frag->nh.raw = __skb_push(frag, hlen);
				__skb_push(frag, hlen);
				skb_reset_network_header(frag);
				memcpy(frag->nh.raw, iph, hlen);
				iph = frag->nh.iph;
				iph->tot_len = htons(frag->len);
+2 −1
Original line number Diff line number Diff line
@@ -619,7 +619,8 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
	}

	skb->h.raw = skb->nh.raw;
	skb->nh.raw = skb_push(skb, sizeof(struct iphdr));
	skb_push(skb, sizeof(struct iphdr));
	skb_reset_network_header(skb);
	memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
	IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED |
			      IPSKB_REROUTED);
+2 −1
Original line number Diff line number Diff line
@@ -1593,7 +1593,8 @@ int ipmr_get_route(struct sk_buff *skb, struct rtmsg *rtm, int nowait)
			return -ENOMEM;
		}

		skb2->nh.raw = skb_push(skb2, sizeof(struct iphdr));
		skb_push(skb2, sizeof(struct iphdr));
		skb_reset_network_header(skb2);
		skb2->nh.iph->ihl = sizeof(struct iphdr)>>2;
		skb2->nh.iph->saddr = rt->rt_src;
		skb2->nh.iph->daddr = rt->rt_dst;
Loading