diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2008-11-25 17:21:01 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-25 17:21:01 -0800 |
commit | 50a30657fd7ee77a94a6bf0ad86eba7c37c3032e (patch) | |
tree | 7eb9165881b9082588eb2c373e9ed2ebc013321e /net/xfrm/xfrm_policy.c | |
parent | c78371441c0d957f54c9f8a35b3ee5a378d14808 (diff) | |
download | op-kernel-dev-50a30657fd7ee77a94a6bf0ad86eba7c37c3032e.zip op-kernel-dev-50a30657fd7ee77a94a6bf0ad86eba7c37c3032e.tar.gz |
netns xfrm: per-netns km_waitq
Disallow spurious wakeups in __xfrm_lookup().
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
-rw-r--r-- | net/xfrm/xfrm_policy.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 8e7671b..cf2bf3a 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -1691,11 +1691,11 @@ restart: if (err == -EAGAIN && (flags & XFRM_LOOKUP_WAIT)) { DECLARE_WAITQUEUE(wait, current); - add_wait_queue(&km_waitq, &wait); + add_wait_queue(&init_net.xfrm.km_waitq, &wait); set_current_state(TASK_INTERRUPTIBLE); schedule(); set_current_state(TASK_RUNNING); - remove_wait_queue(&km_waitq, &wait); + remove_wait_queue(&init_net.xfrm.km_waitq, &wait); nx = xfrm_tmpl_resolve(pols, npols, fl, xfrm, family); |