diff options
Diffstat (limited to 'net/ipv6/xfrm6_output.c')
-rw-r--r-- | net/ipv6/xfrm6_output.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index f21596f8998..4618c18e611 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c @@ -47,6 +47,7 @@ static inline int xfrm6_output_one(struct sk_buff *skb) { struct dst_entry *dst = skb->dst; struct xfrm_state *x = dst->xfrm; + struct ipv6hdr *iph; int err; if (x->props.mode == XFRM_MODE_TUNNEL) { @@ -59,6 +60,9 @@ static inline int xfrm6_output_one(struct sk_buff *skb) if (err) goto error_nolock; + iph = ipv6_hdr(skb); + iph->payload_len = htons(skb->len - sizeof(*iph)); + IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED; err = 0; |