patch-2.0.34 linux/net/ipv4/tcp.c
Next file: linux/net/ipv4/tcp_input.c
Previous file: linux/net/ipv4/route.c
Back to the patch index
Back to the overall index
- Lines: 48
- Date:
Wed Jun 3 15:17:50 1998
- Orig file:
v2.0.33/linux/net/ipv4/tcp.c
- Orig date:
Sun Aug 17 13:35:10 1997
diff -u --recursive --new-file v2.0.33/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c
@@ -740,16 +740,8 @@
if (type == ICMP_SOURCE_QUENCH)
{
- /*
- * FIXME:
- * Follow BSD for now and just reduce cong_window to 1 again.
- * It is possible that we just want to reduce the
- * window by 1/2, or that we want to reduce ssthresh by 1/2
- * here as well.
- */
- sk->cong_window = 1;
- sk->cong_count = 0;
- sk->high_seq = sk->sent_seq;
+ /* Current practice says these frames are bad, plus the drops
+ will account right anyway. If we act on this we stall doubly */
return;
}
@@ -2075,9 +2067,11 @@
add_wait_queue(sk->sleep, &wait);
for (;;) {
current->state = TASK_INTERRUPTIBLE;
+ end_bh_atomic();
release_sock(sk);
schedule();
lock_sock(sk);
+ start_bh_atomic();
skb = tcp_find_established(sk);
if (skb)
break;
@@ -2109,7 +2103,7 @@
if (sk->state != TCP_LISTEN)
goto no_listen;
- lock_sock(sk);
+ lock_sock(sk);start_bh_atomic();
skb = tcp_find_established(sk);
if (skb) {
@@ -2120,6 +2114,7 @@
sk->ack_backlog--;
error = 0;
out:
+ end_bh_atomic();
release_sock(sk);
no_listen:
sk->err = error;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov