diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
commit | 86464aed71025541805e7b1515541aee89879e33 (patch) | |
tree | e01a457a4912a8553bc65524aa3125d51f29f810 /net/ax25/af_ax25.c | |
parent | 88f99939ecc6a95a79614574cb7d95ffccfc3466 (diff) |
Merge with Linux 2.2.1.
Diffstat (limited to 'net/ax25/af_ax25.c')
-rw-r--r-- | net/ax25/af_ax25.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index 77cb218d3..f9392fe34 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c @@ -1242,21 +1242,17 @@ static int ax25_accept(struct socket *sock, struct socket *newsock, int flags) return -EINVAL; /* - * The write queue this time is holding sockets ready to use + * The read queue this time is holding sockets ready to use * hooked into the SABM we saved */ do { - cli(); if ((skb = skb_dequeue(&sk->receive_queue)) == NULL) { - if (flags & O_NONBLOCK) { - sti(); + if (flags & O_NONBLOCK) return -EWOULDBLOCK; - } + interruptible_sleep_on(sk->sleep); - if (signal_pending(current)) { - sti(); + if (signal_pending(current)) return -ERESTARTSYS; - } } } while (skb == NULL); @@ -1264,10 +1260,10 @@ static int ax25_accept(struct socket *sock, struct socket *newsock, int flags) newsk->pair = NULL; newsk->socket = newsock; newsk->sleep = &newsock->wait; - sti(); /* Now attach up the new socket */ skb->sk = NULL; + skb->destructor = NULL; kfree_skb(skb); sk->ack_backlog--; newsock->sk = newsk; @@ -1810,7 +1806,7 @@ __initfunc(void ax25_proto_init(struct net_proto *pro)) proc_net_register(&proc_ax25_calls); #endif - printk(KERN_INFO "G4KLX/GW4PTS AX.25 for Linux. Version 0.37 for Linux NET3.038 (Linux 2.1)\n"); + printk(KERN_INFO "NET4: G4KLX/GW4PTS AX.25 for Linux. Version 0.37 for Linux NET4.0\n"); } #ifdef MODULE |