diff options
| -rw-r--r-- | net/xfrm/xfrm_input.c | 2 | ||||
| -rw-r--r-- | net/xfrm/xfrm_output.c | 2 | 
2 files changed, 4 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c index 872065ca7f8..341cd1189f8 100644 --- a/net/xfrm/xfrm_input.c +++ b/net/xfrm/xfrm_input.c @@ -190,6 +190,8 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)  		XFRM_SKB_CB(skb)->seq.input.low = seq;  		XFRM_SKB_CB(skb)->seq.input.hi = seq_hi; +		skb_dst_force(skb); +  		nexthdr = x->type->input(x, skb);  		if (nexthdr == -EINPROGRESS) diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 1aba03f449c..8f3f0eedc5a 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c @@ -78,6 +78,8 @@ static int xfrm_output_one(struct sk_buff *skb, int err)  		spin_unlock_bh(&x->lock); +		skb_dst_force(skb); +  		err = x->type->output(x, skb);  		if (err == -EINPROGRESS)  			goto out_exit;  |