]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clocksource: Don't use non-continuous clocksources as watchdog
authorThomas Gleixner <tglx@kernel.org>
Fri, 23 Jan 2026 23:17:57 +0000 (00:17 +0100)
committerThomas Gleixner <tglx@kernel.org>
Thu, 12 Mar 2026 11:23:27 +0000 (12:23 +0100)
Using a non-continuous aka untrusted clocksource as a watchdog for another
untrusted clocksource is equivalent to putting the fox in charge of the
henhouse.

That's especially true with the jiffies clocksource which depends on
interrupt delivery based on a periodic timer. Neither the frequency of that
timer is trustworthy nor the kernel's ability to react on it in a timely
manner and rearm it if it is not self rearming.

Just don't bother to deal with this. It's not worth the trouble and only
relevant to museum piece hardware.

Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260123231521.858743259@kernel.org
kernel/time/clocksource.c

index 3c205447717ae2050161a0f22b2d133de06850b3..e753a0632ac80bbb945a062afc54a5bf7514ebcc 100644 (file)
@@ -651,6 +651,13 @@ static void clocksource_select_watchdog(bool fallback)
                if (cs->flags & CLOCK_SOURCE_MUST_VERIFY)
                        continue;
 
+               /*
+                * If it's not continuous, don't put the fox in charge of
+                * the henhouse.
+                */
+               if (!(cs->flags & CLOCK_SOURCE_IS_CONTINUOUS))
+                       continue;
+
                /* Skip current if we were requested for a fallback. */
                if (fallback && cs == old_wd)
                        continue;