提交 c54b4b76 编写于 作者: S stephen hemminger 提交者: David S. Miller

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: NStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 febf0819
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册