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;  |