Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
@@ -1126,7 +1126,8 @@ ssize_t ip_append_page(struct sock *sk, struct page *page,
* Find where to start putting bytes.
*/
data = skb_put(skb, fragheaderlen + fraggap);
- skb->nh.iph = iph = (struct iphdr *)data;
+ skb_reset_network_header(skb);
+ iph = skb->nh.iph;
data += fragheaderlen;
skb->h.raw = data;
@@ -296,8 +296,9 @@ void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 port, u32 inf
if (!skb)
return;
- iph = (struct iphdr*)skb_put(skb, sizeof(struct iphdr));
- skb->nh.iph = iph;
+ skb_put(skb, sizeof(struct iphdr));
iph->daddr = daddr;
serr = SKB_EXT_ERR(skb);