diff options
author | Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> | 2006-03-17 16:05:43 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-17 16:05:43 -0800 |
commit | 265a92856b17524c87da0258ac0d3cec80ae1d35 (patch) | |
tree | 31ebb3ef3c990ea64a1b93a1785d2abafe8534ec /include | |
parent | 6f5e6b9e69bf043074a0edabe3d271899c34eb79 (diff) | |
download | linux-3.10-265a92856b17524c87da0258ac0d3cec80ae1d35.tar.gz linux-3.10-265a92856b17524c87da0258ac0d3cec80ae1d35.tar.bz2 linux-3.10-265a92856b17524c87da0258ac0d3cec80ae1d35.zip |
[NET]: Fix race condition in sk_wait_event().
It is broken, the condition is checked out of socket lock. It is
wonderful the bug survived for so long time.
[ This fixes bugzilla #6233:
race condition in tcp_sendmsg when connection became established ]
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/sock.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 30758035d61..f63d0d56712 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -478,9 +478,9 @@ static inline void sk_add_backlog(struct sock *sk, struct sk_buff *skb) rc = __condition; \ if (!rc) { \ *(__timeo) = schedule_timeout(*(__timeo)); \ - rc = __condition; \ } \ lock_sock(__sk); \ + rc = __condition; \ rc; \ }) |