From c6b68897ee123628067dd170c12be7b95cb36edb Mon Sep 17 00:00:00 2001 From: Andrew Hendry Date: Tue, 14 Sep 2010 20:38:54 -0700 Subject: [PATCH] --- yaml --- r: 214521 b: refs/heads/master c: 141646ce56735cedb2336b3cd21364287f0aa4c7 h: refs/heads/master i: 214519: b469dde7cb0005dc48d792c45667d7be4b9778fb v: v3 --- [refs] | 2 +- trunk/net/x25/af_x25.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index f740590780ba..5a8ad8b5c3ee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 90c27297a9bfb8ea11c0e3f73ad90c4c66e8501e +refs/heads/master: 141646ce56735cedb2336b3cd21364287f0aa4c7 diff --git a/trunk/net/x25/af_x25.c b/trunk/net/x25/af_x25.c index bd6fce31a738..04321eec65e1 100644 --- a/trunk/net/x25/af_x25.c +++ b/trunk/net/x25/af_x25.c @@ -869,8 +869,7 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags) struct sk_buff *skb; int rc = -EINVAL; - lock_kernel(); - if (!sk || sk->sk_state != TCP_LISTEN) + if (!sk) goto out; rc = -EOPNOTSUPP; @@ -878,6 +877,10 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags) goto out; lock_sock(sk); + rc = -EINVAL; + if (sk->sk_state != TCP_LISTEN) + goto out2; + rc = x25_wait_for_data(sk, sk->sk_rcvtimeo); if (rc) goto out2; @@ -897,7 +900,6 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags) out2: release_sock(sk); out: - unlock_kernel(); return rc; }