diff options
-rw-r--r-- | net/xfrm/xfrm_output.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c index 31a2e6d34dba..73ad8c8ef344 100644 --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c | |||
@@ -105,6 +105,9 @@ static int xfrm_output_one(struct sk_buff *skb, int err) | |||
105 | if (xfrm_offload(skb)) { | 105 | if (xfrm_offload(skb)) { |
106 | x->type_offload->encap(x, skb); | 106 | x->type_offload->encap(x, skb); |
107 | } else { | 107 | } else { |
108 | /* Inner headers are invalid now. */ | ||
109 | skb->encapsulation = 0; | ||
110 | |||
108 | err = x->type->output(x, skb); | 111 | err = x->type->output(x, skb); |
109 | if (err == -EINPROGRESS) | 112 | if (err == -EINPROGRESS) |
110 | goto out; | 113 | goto out; |
@@ -208,7 +211,6 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb) | |||
208 | int err; | 211 | int err; |
209 | 212 | ||
210 | secpath_reset(skb); | 213 | secpath_reset(skb); |
211 | skb->encapsulation = 0; | ||
212 | 214 | ||
213 | if (xfrm_dev_offload_ok(skb, x)) { | 215 | if (xfrm_dev_offload_ok(skb, x)) { |
214 | struct sec_path *sp; | 216 | struct sec_path *sp; |