patch-2.1.119 linux/net/ipv4/tcp_timer.c

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

diff -u --recursive --new-file v2.1.118/linux/net/ipv4/tcp_timer.c linux/net/ipv4/tcp_timer.c
@@ -182,7 +182,7 @@
 	if(sk->zapped) 
 		return;
 	
-	if (sk->sock_readers) {
+	if (atomic_read(&sk->sock_readers)) {
 		/* Try again in second. */
 		tcp_reset_xmit_timer(sk, TIME_PROBE0, HZ);
 		return;
@@ -432,7 +432,7 @@
 		return;
 	}
 
-	if (sk->sock_readers) {
+	if (atomic_read(&sk->sock_readers)) {
 		/* Try again in a second. */
 		tcp_reset_xmit_timer(sk, TIME_RETRANS, HZ);
 		return;
@@ -518,7 +518,7 @@
 			struct tcp_opt *tp = &sk->tp_pinfo.af_tcp;
 			
 			/* TCP_LISTEN is implied. */
-			if (!sk->sock_readers && tp->syn_wait_queue) {
+			if (!atomic_read(&sk->sock_readers) && tp->syn_wait_queue) {
 				struct open_request *prev = (struct open_request *)(&tp->syn_wait_queue);
 				struct open_request *req = tp->syn_wait_queue;
 				do {

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