diff options
| -rw-r--r-- | include/net/dst.h | 2 | ||||
| -rw-r--r-- | net/xfrm/xfrm_output.c | 2 | 
2 files changed, 2 insertions, 2 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 2a46cbaef92..75b95df4afe 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -345,7 +345,7 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev)  static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb)  { -	struct dst_entry *child = skb_dst(skb)->child; +	struct dst_entry *child = dst_clone(skb_dst(skb)->child);  	skb_dst_drop(skb);  	return child; diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 8f3f0eedc5a..47bacd8c025 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -96,7 +96,7 @@ resume:  			err = -EHOSTUNREACH;  			goto error_nolock;  		} -		skb_dst_set(skb, dst_clone(dst)); +		skb_dst_set(skb, dst);  		x = dst->xfrm;  	} while (x && !(x->outer_mode->flags & XFRM_MODE_FLAG_TUNNEL));  |