• Eric Dumazet's avatar
    net: tcp: dctcp_update_alpha() fixes. · f9c2ff22
    Eric Dumazet authored
    dctcp_alpha can be read by from dctcp_get_info() without
    synchro, so use WRITE_ONCE() to prevent compiler from using
    dctcp_alpha as a temporary variable.
    
    Also, playing with small dctcp_shift_g (like 1), can expose
    an overflow with 32bit values shifted 9 times before divide.
    
    Use an u64 field to avoid this problem, and perform the divide
    only if acked_bytes_ecn is not zero.
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f9c2ff22
tcp_dctcp.c 9.43 KB