/* Too long gap. Apparently sender falled to 
/* Too long gap. Apparently sender failed to 
static void tcp_event_data_recv(struct sock *sk, struct tcp_sock *tp, struct sk_buff *skb){	struct inet_connection_sock *icsk = inet_csk(sk);	u32 now;	inet_csk_schedule_ack(sk);	tcp_measure_rcv_mss(sk, skb);	tcp_rcv_rtt_measure(tp);		now = tcp_time_stamp;	if (!icsk->icsk_ack.ato) {		/* The _first_ data packet received, initialize		 * delayed ACK engine.		 */		tcp_incr_quickack(sk);		icsk->icsk_ack.ato = TCP_ATO_MIN;	} else {		int m = now - icsk->icsk_ack.lrcvtime;		if (m <= TCP_ATO_MIN/2) {			/* The fastest case is the first. */			icsk->icsk_ack.ato = (icsk->icsk_ack.ato >> 1) + TCP_ATO_MIN / 2;		} else if (m < icsk->icsk_ack.ato) {			icsk->icsk_ack.ato = (icsk->icsk_ack.ato >> 1) + m;			if (icsk->icsk_ack.ato > icsk->icsk_rto)				icsk->icsk_ack.ato = icsk->icsk_rto;		} else if (m > icsk->icsk_rto) {			/* Too long gap. Apparently sender falled to			 * restart window, so that we send ACKs quickly.			 */			tcp_incr_quickack(sk);			sk_stream_mem_reclaim(sk);		}	}	icsk->icsk_ack.lrcvtime = now;	TCP_ECN_check_ce(tp, skb);	if (skb->len >= 128)		tcp_grow_window(sk, tp, skb);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/caa20d9abe810be2ede9612b6c9db6ce7d6edf80/tcp_input.c/buggy/net/ipv4/tcp_input.c