• Sam Jansen's avatar
    TCP: Problem bug with sysctl_tcp_congestion_control function · 470678d9
    Sam Jansen authored
    [TCP]: Problem bug with sysctl_tcp_congestion_control function
    
    [ Upstream commit: 5487796f ]
    
    sysctl_tcp_congestion_control seems to have a bug that prevents it
    from actually calling the tcp_set_default_congestion_control
    function. This is not so apparent because it does not return an error
    and generally the /proc interface is used to configure the default TCP
    congestion control algorithm.  This is present in 2.6.18 onwards and
    probably earlier, though I have not inspected 2.6.15--2.6.17.
    
    sysctl_tcp_congestion_control calls sysctl_string and expects a successful
    return code of 0. In such a case it actually sets the congestion control
    algorithm with tcp_set_default_congestion_control. Otherwise, it returns the
    value returned by sysctl_string. This was correct in 2.6.14, as sysctl_string
    returned 0 on success. However, sysctl_string was updated to return 1 on
    success around about 2.6.15 and sysctl_tcp_congestion_control was not updated.
    Even though sysctl_tcp_congestion_control returns 1, do_sysctl_strategy
    converts this return code to '0', so the caller never notices the error.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    470678d9
sysctl_net_ipv4.c 19.6 KB