[TCP]: Fix never pruned tcp out-of-order queue.
authorVitaliy Gusev <vgusev@openvz.org>
Tue, 15 Apr 2008 07:33:38 +0000 (00:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Apr 2008 07:33:38 +0000 (00:33 -0700)
commitb000cd3707e7b25d76745f9c0e261c23d21fa578
treed86dfd47954404e581f7f9d730ae3d3ce2532ad1
parent066a3b5b2346febf9a655b444567b7138e3bb939
[TCP]: Fix never pruned tcp out-of-order queue.

tcp_prune_queue() doesn't prune an out-of-order queue at all.
Therefore sk_rmem_schedule() can fail but the out-of-order queue isn't
pruned . This can lead to tcp deadlock state if the next two
conditions are held:

1. There are a sequence hole between last received in
   order segment and segments enqueued to the out-of-order queue.

2. Size of all segments in the out-of-order queue is more than tcp_mem[2].

Signed-off-by: Vitaliy Gusev <vgusev@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c