On Mon, 2018-02-05 at 07:52 -0800, Eric Dumazet wrote:
> On Mon, 2018-02-05 at 17:11 +0200, Ilya Lesokhin wrote:
> > Avoid SKB coalescing if eor bit is set in one of the relevant
> > SKBs.
> > 
> > Fixes: c134ecb87817 ("tcp: Make use of MSG_EOR in tcp_sendmsg")
> > Signed-off-by: Ilya Lesokhin <il...@mellanox.com>
> > ---
> 
> Reviewed-by: Eric Dumazet <eduma...@google.com>
> 
> Thanks.


I am taking this approval back.

You missed an eor propagation if it is in the last skb that is copied
to the new skb.

Something like this added to your patch :

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 
e9f985e42405a38fc95980da5debb7ac8b51fbb5..87c2ff458f7528ee3cd3e5e1154375a906c1bc67
 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2134,6 +2134,7 @@ static int tcp_mtu_probe(struct sock *sk)
                        /* We've eaten all the data from this skb.
                         * Throw it away. */
                        TCP_SKB_CB(nskb)->tcp_flags |= 
TCP_SKB_CB(skb)->tcp_flags;
+                       TCP_SKB_CB(nskb)->eor = TCP_SKB_CB(skb)->eor;
                        tcp_unlink_write_queue(skb, sk);
                        sk_wmem_free_skb(sk, skb);
                } else {

Reply via email to