tcp: avoid collapses in tcp_prune_queue() if possible
am: d18ec55af9

Change-Id: I1f2f48c79d95567cd79ff6b79395beacf2466f87
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index be22b7d..62df632 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4878,6 +4878,9 @@
 	else if (tcp_under_memory_pressure(sk))
 		tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U * tp->advmss);
 
+	if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf)
+		return 0;
+
 	tcp_collapse_ofo_queue(sk);
 	if (!skb_queue_empty(&sk->sk_receive_queue))
 		tcp_collapse(sk, &sk->sk_receive_queue,