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

Commit 8c2eb480 authored by Colin Ian King's avatar Colin Ian King Committed by Ingo Molnar
Browse files

softlockup: Stop spurious softlockup messages due to overflow



Ensure additions on touch_ts do not overflow.  This can occur
when the top 32 bits of the TSC reach 0xffffffff causing
additions to touch_ts to overflow and this in turn generates
spurious softlockup warnings.

Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: <stable@kernel.org>
LKML-Reference: <1268994482.1798.6.camel@lenovo>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 0cff810f
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -155,11 +155,11 @@ void softlockup_tick(void)
	 * Wake up the high-prio watchdog task twice per
	 * Wake up the high-prio watchdog task twice per
	 * threshold timespan.
	 * threshold timespan.
	 */
	 */
	if (now > touch_ts + softlockup_thresh/2)
	if (time_after(now - softlockup_thresh/2, touch_ts))
		wake_up_process(per_cpu(softlockup_watchdog, this_cpu));
		wake_up_process(per_cpu(softlockup_watchdog, this_cpu));


	/* Warn about unreasonable delays: */
	/* Warn about unreasonable delays: */
	if (now <= (touch_ts + softlockup_thresh))
	if (time_before_eq(now - softlockup_thresh, touch_ts))
		return;
		return;


	per_cpu(softlockup_print_ts, this_cpu) = touch_ts;
	per_cpu(softlockup_print_ts, this_cpu) = touch_ts;