aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/ipmr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index 4a8d99bca441..465459d59b21 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -561,8 +561,10 @@ static int ipmr_cache_report(struct sk_buff *pkt, vifi_t vifi, int assert)
561 And all this only to mangle msg->im_msgtype and 561 And all this only to mangle msg->im_msgtype and
562 to set msg->im_mbz to "mbz" :-) 562 to set msg->im_mbz to "mbz" :-)
563 */ 563 */
564 msg = (struct igmpmsg*)skb_push(skb, sizeof(struct iphdr)); 564 skb_push(skb, sizeof(struct iphdr));
565 skb->nh.raw = skb->h.raw = (u8*)msg; 565 skb_reset_network_header(skb);
566 skb->h.raw = skb->data;
567 msg = (struct igmpmsg *)skb->nh.raw;
566 memcpy(msg, skb_network_header(pkt), sizeof(struct iphdr)); 568 memcpy(msg, skb_network_header(pkt), sizeof(struct iphdr));
567 msg->im_msgtype = IGMPMSG_WHOLEPKT; 569 msg->im_msgtype = IGMPMSG_WHOLEPKT;
568 msg->im_mbz = 0; 570 msg->im_mbz = 0;