Message ID | 1284507076.1742.51.camel@jaunty |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Andrew Hendry <andrew.hendry@gmail.com> Date: Wed, 15 Sep 2010 09:31:16 +1000 > Listen updates socket values and needs lock_sock. > > Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> Applied. Although you may want to think about whether we need to also hold the x25_list_lock as a writer here so that scanners of the socket list see consistent state changes. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Thanks, I'll test that and have a close look at it for the next round. On Wed, Sep 15, 2010 at 1:40 PM, David Miller <davem@davemloft.net> wrote: > From: Andrew Hendry <andrew.hendry@gmail.com> > Date: Wed, 15 Sep 2010 09:31:16 +1000 > >> Listen updates socket values and needs lock_sock. >> >> Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> > > Applied. > > Although you may want to think about whether we need to also hold the > x25_list_lock as a writer here so that scanners of the socket list see > consistent state changes. > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index 5e86d4e..f6a8f17 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c @@ -507,14 +507,14 @@ static int x25_listen(struct socket *sock, int backlog) struct sock *sk = sock->sk; int rc = -EOPNOTSUPP; - lock_kernel(); + lock_sock(sk); if (sk->sk_state != TCP_LISTEN) { memset(&x25_sk(sk)->dest_addr, 0, X25_ADDR_LEN); sk->sk_max_ack_backlog = backlog; sk->sk_state = TCP_LISTEN; rc = 0; } - unlock_kernel(); + release_sock(sk); return rc; }
Listen updates socket values and needs lock_sock. Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com> --- net/x25/af_x25.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)