aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/xfrm6_mode_ro.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/xfrm6_mode_ro.c')
-rw-r--r--net/ipv6/xfrm6_mode_ro.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv6/xfrm6_mode_ro.c b/net/ipv6/xfrm6_mode_ro.c
index 6031c16d46ca..6ad6d7ac6bd7 100644
--- a/net/ipv6/xfrm6_mode_ro.c
+++ b/net/ipv6/xfrm6_mode_ro.c
@@ -50,11 +50,12 @@ static int xfrm6_ro_output(struct xfrm_state *x, struct sk_buff *skb)
50 int hdr_len; 50 int hdr_len;
51 51
52 skb_push(skb, x->props.header_len); 52 skb_push(skb, x->props.header_len);
53 iph = skb->nh.ipv6h; 53 iph = ipv6_hdr(skb);
54 54
55 hdr_len = x->type->hdr_offset(x, skb, &prevhdr); 55 hdr_len = x->type->hdr_offset(x, skb, &prevhdr);
56 skb->nh.raw = prevhdr - x->props.header_len; 56 skb_set_network_header(skb,
57 skb->h.raw = skb->data + hdr_len; 57 (prevhdr - x->props.header_len) - skb->data);
58 skb_set_transport_header(skb, hdr_len);
58 memmove(skb->data, iph, hdr_len); 59 memmove(skb->data, iph, hdr_len);
59 return 0; 60 return 0;
60} 61}