diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2008-11-25 20:21:01 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-25 20:21:01 -0500 |
commit | 50a30657fd7ee77a94a6bf0ad86eba7c37c3032e (patch) | |
tree | 7eb9165881b9082588eb2c373e9ed2ebc013321e /net/xfrm/xfrm_policy.c | |
parent | c78371441c0d957f54c9f8a35b3ee5a378d14808 (diff) |
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 8e7671b9e76e..cf2bf3aa7ab4 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1691,11 +1691,11 @@ restart: | |||
1691 | if (err == -EAGAIN && (flags & XFRM_LOOKUP_WAIT)) { | 1691 | if (err == -EAGAIN && (flags & XFRM_LOOKUP_WAIT)) { |
1692 | DECLARE_WAITQUEUE(wait, current); | 1692 | DECLARE_WAITQUEUE(wait, current); |
1693 | 1693 | ||
1694 | add_wait_queue(&km_waitq, &wait); | 1694 | add_wait_queue(&init_net.xfrm.km_waitq, &wait); |
1695 | set_current_state(TASK_INTERRUPTIBLE); | 1695 | set_current_state(TASK_INTERRUPTIBLE); |
1696 | schedule(); | 1696 | schedule(); |
1697 | set_current_state(TASK_RUNNING); | 1697 | set_current_state(TASK_RUNNING); |
1698 | remove_wait_queue(&km_waitq, &wait); | 1698 | remove_wait_queue(&init_net.xfrm.km_waitq, &wait); |
1699 | 1699 | ||
1700 | nx = xfrm_tmpl_resolve(pols, npols, fl, xfrm, family); | 1700 | nx = xfrm_tmpl_resolve(pols, npols, fl, xfrm, family); |
1701 | 1701 | ||