diff options
-rw-r--r-- | net/x25/af_x25.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index c6ab4da4b8e2..8d7b2802d33f 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c @@ -352,17 +352,15 @@ static unsigned int x25_new_lci(struct x25_neigh *nb) unsigned int lci = 1; struct sock *sk; - read_lock_bh(&x25_list_lock); - - while ((sk = __x25_find_socket(lci, nb)) != NULL) { + while ((sk = x25_find_socket(lci, nb)) != NULL) { sock_put(sk); if (++lci == 4096) { lci = 0; break; } + cond_resched(); } - read_unlock_bh(&x25_list_lock); return lci; } |