Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c54b4b76 authored by stephen hemminger's avatar stephen hemminger Committed by David S. Miller
Browse files

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: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent febf0819
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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;
		}