diff options
author | Sam Jansen <sjansen@google.com> | 2007-11-29 23:07:57 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-12-14 10:31:58 -0800 |
commit | 7be57dece6dbe2b8b1b4e961f95e58e86680fa4d (patch) | |
tree | 6a2c0b5f87d2e08d72c5cf47fcffa24b306f0b5d /lib/locking-selftest-rlock-hardirq.h | |
parent | 341619d9ea62cd22b674bc9118bd1acfa0f3c2cf (diff) |
TCP: Problem bug with sysctl_tcp_congestion_control function
[TCP]: Problem bug with sysctl_tcp_congestion_control function
[ Upstream commit: 5487796f0c9475586277a0a7a91211ce5746fa6a ]
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: David S. Miller <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib/locking-selftest-rlock-hardirq.h')
0 files changed, 0 insertions, 0 deletions