• Herbert Xu's avatar
    [TCP]: Handle real partial-ACKs of TSO frames correctly. · f335c143
    Herbert Xu authored
    Actually, I think we've caught your crash now.  If that code path
    is triggering at all, then it'll trigger with TSO packets too.  If
    we get a truly partial ack on a TSO packet, then tcp_tso_acked will
    not trim it off.  So we will fall through to this last-ditch trim
    call, which doesn't update packets_out.
    
    There are two solutions to this problem.  I've taken the simpler
    approach for now.  We simply trim off the partial bits in tcp_tso_acked
    and live with the fact that the packet counters may differ from
    what's on the netwrok by one.
    
    Later on we can 'fix' this by remembering where the original TSO
    packet started from, perhaps in skb->h or somewhere.  Dave, is this
    worth it?
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f335c143
tcp_output.c 50.1 KB