• John Heffner's avatar
    [TCP]: Fix snd_cwnd adjustments in tcp_highspeed.c · 5528e568
    John Heffner authored
    Xiaoliang (David) Wei wrote:
    > Hi gurus,
    > 
    >    I am reading the code of tcp_highspeed.c in the kernel and have a
    > question on the hstcp_cong_avoid function, specifically the following
    > AI part (line 136~143 in net/ipv4/tcp_highspeed.c ):
    > 
    >                /* Do additive increase */
    >                if (tp->snd_cwnd < tp->snd_cwnd_clamp) {
    >                        tp->snd_cwnd_cnt += ca->ai;
    >                        if (tp->snd_cwnd_cnt >= tp->snd_cwnd) {
    >                                tp->snd_cwnd++;
    >                                tp->snd_cwnd_cnt -= tp->snd_cwnd;
    >                        }
    >                }
    > 
    >    In this part, when (tp->snd_cwnd_cnt == tp->snd_cwnd),
    > snd_cwnd_cnt will be -1... snd_cwnd_cnt is defined as u16, will this
    > small chance of getting -1 becomes a problem?
    > Shall we change it by reversing the order of the cwnd++ and cwnd_cnt -= 
    > cwnd?
    
    Absolutely correct.  Thanks.
    Signed-off-by: default avatarJohn Heffner <jheffner@psc.edu>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5528e568
tcp_highspeed.c 4.77 KB