Subject: Re: [PATCH] TCP:Fix a bug in strategy_allowed_congestion_control

From: Stephen Hemminger <[email-masked]>
Date: Fri, 25 Jan 2008 08:25:53 -0800

On Fri, 25 Jan 2008 15:10:13 +0800
shanwei <[email-masked]> wrote:

> hi all:
> 
> In strategy_allowed_congestion_control of the 2.6.24 kernel, 
> when sysctl_string return 1 on success,it should call 
> tcp_set_allowed_congestion_control to set the allowed congestion
> control.But, it don't.
> the sysctl_string return 1 on success, otherwise return negative,
> never return 0.The patch fix the problem.
> 
> Signed-off-by: Shan Wei <[email-masked]>
> 
> diff -Nuarp linux-2.6.24/net/ipv4/sysctl_net_ipv4.c linux-2.6.24-new/net/ipv4/sysctl_net_ipv4.c
> --- linux-2.6.24/net/ipv4/sysctl_net_ipv4.c	2008-01-25 06:58:37.000000000 +0800
> +++ linux-2.6.24-new/net/ipv4/sysctl_net_ipv4.c	2008-01-25 12:23:20.000000000 +0800
> @@ -248,7 +248,7 @@ static int strategy_allowed_congestion_c
>  
>  	tcp_get_available_congestion_control(tbl.data, tbl.maxlen);
>  	ret = sysctl_string(&tbl, name, nlen, oldval, oldlenp, newval, newlen);
> -	if (ret == 0 && newval && newlen)
> +	if (ret == 1 && newval && newlen)
>  		ret = tcp_set_allowed_congestion_control(tbl.data);
>  	kfree(tbl.data);
> 
> 

Acked-by: Stephen Hemminger <[email-masked]>

This parallels previous fix by Sam Jansen.