aboutsummaryrefslogtreecommitdiffstats
path: root/net/key
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2013-08-27 07:43:30 -0400
committerSteffen Klassert <steffen.klassert@secunet.com>2013-12-06 01:24:31 -0500
commit5b8ef3415a21f173ab115e90ec92c071a03f22d7 (patch)
treebb78d47430f22c24030375aeb2b358d8e38ddd18 /net/key
parent283bc9f35bbbcb0e9ab4e6d2427da7f9f710d52d (diff)
xfrm: Remove ancient sleeping when the SA is in acquire state
We now queue packets to the policy if the states are not yet resolved, this replaces the ancient sleeping code. Also the sleeping can cause indefinite task hangs if the needed state does not get resolved. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/key')
-rw-r--r--net/key/af_key.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 9a039acf37e8..5beabd8ba772 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -1380,10 +1380,9 @@ static int pfkey_acquire(struct sock *sk, struct sk_buff *skb, const struct sadb
1380 return 0; 1380 return 0;
1381 1381
1382 spin_lock_bh(&x->lock); 1382 spin_lock_bh(&x->lock);
1383 if (x->km.state == XFRM_STATE_ACQ) { 1383 if (x->km.state == XFRM_STATE_ACQ)
1384 x->km.state = XFRM_STATE_ERROR; 1384 x->km.state = XFRM_STATE_ERROR;
1385 wake_up(&net->xfrm.km_waitq); 1385
1386 }
1387 spin_unlock_bh(&x->lock); 1386 spin_unlock_bh(&x->lock);
1388 xfrm_state_put(x); 1387 xfrm_state_put(x);
1389 return 0; 1388 return 0;