tcp_cubic: fix comparison of jiffies
Jiffies wraps around therefore the correct way to compare is to use cast to signed value. Note: cubic is not using full jiffies value on 64 bit arch because using full unsigned long makes struct bictcp grow too large for the available ca_priv area. Includes correction from Sangtae Ha to improve ack train detection. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
febf081987
commit
c54b4b7655
1 changed files with 4 additions and 2 deletions
|
@ -342,9 +342,11 @@ static void hystart_update(struct sock *sk, u32 delay)
|
|||
u32 curr_jiffies = jiffies;
|
||||
|
||||
/* first detection parameter - ack-train detection */
|
||||
if (curr_jiffies - ca->last_jiffies <= msecs_to_jiffies(2)) {
|
||||
if ((s32)(curr_jiffies - ca->last_jiffies) <=
|
||||
msecs_to_jiffies(2)) {
|
||||
ca->last_jiffies = curr_jiffies;
|
||||
if (curr_jiffies - ca->round_start >= ca->delay_min>>4)
|
||||
if ((s32) (curr_jiffies - ca->round_start) >
|
||||
ca->delay_min >> 4)
|
||||
ca->found |= HYSTART_ACK_TRAIN;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue