diff --git a/src/linux/net/newip/tcp_nip_input.c b/src/linux/net/newip/tcp_nip_input.c index 4e92daaa967505573eba794ed3fd386333b1a87a..0e3b1fffde7b9b0438251a6bcbadbf2ed6448531 100644 --- a/src/linux/net/newip/tcp_nip_input.c +++ b/src/linux/net/newip/tcp_nip_input.c @@ -340,15 +340,7 @@ coalesce_done: goto insert; } - if (!before(seq, TCP_SKB_CB(tp->ooo_last_skb)->seq)) { - if (!after(end_seq, TCP_SKB_CB(tp->ooo_last_skb)->end_seq)) { - /* ooo_last_skb->seq <= seq, end_seq <= ooo_last_skb->end_seq */ - nip_dbg("ooo_last_skb completely overlapping new skb, drop pkt"); - NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPOFOMERGE); - tcp_nip_drop(sk, skb); - skb = NULL; - goto end; - } + if (after(seq, TCP_SKB_CB(tp->ooo_last_skb)->seq)) { tcp_nip_left_overlap(skb, tp->ooo_last_skb); if (tcp_nip_ooo_try_coalesce(sk, tp->ooo_last_skb, skb, &fragstolen)) { nip_dbg("ofo skb coalesce ooo_last_skb done");