patch-2.3.21 linux/net/ipv4/tcp_input.c

Next file: linux/net/socket.c
Previous file: linux/net/ipv4/tcp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.20/linux/net/ipv4/tcp_input.c linux/net/ipv4/tcp_input.c
@@ -1403,7 +1403,7 @@
 
 	if (!sk->dead) {
 		wake_up_interruptible(sk->sleep);
-		sock_wake_async(sk->socket, 1);
+		sock_wake_async(sk->socket, 1, POLL_HUP);
 	}
 
 	switch(sk->state) {
@@ -1806,7 +1806,7 @@
 	 */
 	if (!sk->dead) {
 		wake_up_interruptible(sk->sleep);
-		sock_wake_async(sk->socket,1);
+		sock_wake_async(sk->socket,1, POLL_IN);
 	}
 	return(1);
 }
@@ -1965,6 +1965,7 @@
 			kill_proc(sk->proc, SIGURG, 1);
 		else
 			kill_pg(-sk->proc, SIGURG, 1);
+		sock_wake_async(sk->socket, 3, POLL_PRI);
 	}
 
 	/* We may be adding urgent data when the last byte read was
@@ -2201,7 +2202,7 @@
 			 * this frame, the pred_flags won't match up. -DaveM
 			 */
 			wake_up_interruptible(sk->sleep);
-			sock_wake_async(sk->socket,1);
+			sock_wake_async(sk->socket,1, POLL_IN);
 			tcp_delack_estimator(tp);
 
 			tcp_remember_ack(tp, th, skb); 
@@ -2760,7 +2761,7 @@
 
 		if(!sk->dead) {
 			wake_up_interruptible(sk->sleep);
-			sock_wake_async(sk->socket, 0);
+			sock_wake_async(sk->socket, 0, POLL_IN);
 		}
 		return -1;
 	}
@@ -3017,7 +3018,7 @@
 				 */
 				if (!sk->dead && sk->sleep) {
 					wake_up_interruptible(sk->sleep);
-					sock_wake_async(sk->socket, 1);
+					sock_wake_async(sk->socket,0,POLL_OUT);
 				}
 
 				tp->snd_una = TCP_SKB_CB(skb)->ack_seq;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)