aboutsummaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r--net/xfrm/xfrm_input.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index b7d68eb9434c..5cad522e8ef6 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -146,7 +146,11 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
146 if (xfrm_state_check_expire(x)) 146 if (xfrm_state_check_expire(x))
147 goto drop_unlock; 147 goto drop_unlock;
148 148
149 spin_unlock(&x->lock);
150
149 nexthdr = x->type->input(x, skb); 151 nexthdr = x->type->input(x, skb);
152
153 spin_lock(&x->lock);
150 if (nexthdr <= 0) { 154 if (nexthdr <= 0) {
151 if (nexthdr == -EBADMSG) 155 if (nexthdr == -EBADMSG)
152 x->stats.integrity_failed++; 156 x->stats.integrity_failed++;