• Ali Saidi's avatar
    tcp: Fix possible double-ack w/ user dma · 53240c20
    Ali Saidi authored
    From: Ali Saidi <saidi@engin.umich.edu>
    
    When TCP receive copy offload is enabled it's possible that
    tcp_rcv_established() will cause two acks to be sent for a single
    packet. In the case that a tcp_dma_early_copy() is successful,
    copied_early is set to true which causes tcp_cleanup_rbuf() to be
    called early which can send an ack. Further along in
    tcp_rcv_established(), __tcp_ack_snd_check() is called and will
    schedule a delayed ACK. If no packets are processed before the delayed
    ack timer expires the packet will be acked twice.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    53240c20
tcp_input.c 156 KB