--- zzzz-none-000/linux-2.6.19.2/net/ipv4/tcp_timer.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/net/ipv4/tcp_timer.c 2007-07-11 12:40:05.000000000 +0000 @@ -482,7 +482,7 @@ elapsed = keepalive_time_when(tp); /* It is alive without keepalive 8) */ - if (tp->packets_out || sk->sk_send_head) + if (icsk->icsk_retransmits == 0 && (tp->packets_out || sk->sk_send_head)) goto resched; elapsed = tcp_time_stamp - tp->rcv_tstamp;