patch-2.1.132 linux/net/ax25/af_ax25.c

Next file: linux/net/ax25/ax25_ds_in.c
Previous file: linux/net/appletalk/ddp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.131/linux/net/ax25/af_ax25.c linux/net/ax25/af_ax25.c
@@ -1242,21 +1242,17 @@
 		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 @@
 	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;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov