linux/kernel/time
Thomas Gleixner f24df84cbe time/jiffies: Register jiffies clocksource before usage
Teddy reported that a XEN HVM has a long boot delay, which was bisected to
the recent enhancements to the negative motion detection. It turned out
that the jiffies clocksource is used in early boot before it is registered,
which leaves the max_delta_raw field at zero. That causes the read out to
be clamped to the max delta of 0, which means time is not making progress.

Cure it by ensuring that it is initialized before its first usage in
timekeeping_init().

Fixes: 76031d9536 ("clocksource: Make negative motion detection more robust")
Reported-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Tested-by: Teddy Astie <teddy.astie@vates.tech>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/87y0gn3fve.ffs@fw13
Closes: https://lore.kernel.org/all/1780914594.8631fc262581453bbf619ec5b2062170.19ea6c8227b000701b@vates.tech
2026-06-13 15:22:40 +02:00
..
.kunitconfig time/kunit: Add .kunitconfig 2026-02-24 08:41:51 +01:00
alarmtimer.c alarmtimer: Remove stale return description from alarm_handle_timer() 2026-05-06 08:33:08 +02:00
clockevents.c clockevents: Add missing resets of the next_event_forced flag 2026-04-16 21:22:04 +02:00
clocksource-wdtest.c clocksource: Rewrite watchdog code completely 2026-03-20 13:36:32 +01:00
clocksource.c clocksource: Clean up clocksource_update_freq() functions 2026-05-06 08:33:08 +02:00
hrtimer.c hrtimer: Fix the bogus return type of __hrtimer_start_range_ns() 2026-05-13 22:41:12 +02:00
itimer.c
jiffies.c time/jiffies: Register jiffies clocksource before usage 2026-06-13 15:22:40 +02:00
Kconfig Update to the VDSO subsystem: 2026-04-14 10:53:44 -07:00
Makefile timens: Remove dependency on the vDSO 2026-03-26 15:44:23 +01:00
namespace_internal.h timens: Remove dependency on the vDSO 2026-03-26 15:44:23 +01:00
namespace_vdso.c mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
namespace.c time/namespace: Export init_time_ns and do_timens_ktime_to_host() 2026-06-02 21:05:36 +02:00
ntp_internal.h
ntp.c
posix-clock.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
posix-cpu-timers.c posix-timers: Expand timer_[re]arm() callbacks with a boolean return value 2026-05-01 21:36:11 +02:00
posix-stubs.c
posix-timers.c posix-timers: Switch to hrtimer_start_expires_user() 2026-05-01 21:36:12 +02:00
posix-timers.h posix-timers: Expand timer_[re]arm() callbacks with a boolean return value 2026-05-01 21:36:11 +02:00
sched_clock.c time/sched_clock: Use ACCESS_PRIVATE() to evaluate hrtimer::function 2026-01-13 18:08:57 +01:00
sleep_timeout.c
test_udelay.c
tick-broadcast-hrtimer.c clockevents: Remove redundant CLOCK_EVT_FEAT_KTIME 2026-02-27 16:40:06 +01:00
tick-broadcast.c clockevents: Add missing resets of the next_event_forced flag 2026-04-16 21:22:04 +02:00
tick-common.c clockevents: Prevent timer interrupt starvation 2026-04-10 22:45:38 +02:00
tick-internal.h cpufreq: ondemand: Simplify idle cputime granularity test 2026-01-28 22:24:58 +01:00
tick-legacy.c
tick-oneshot.c treewide: Update email address 2026-01-11 06:09:11 -10:00
tick-sched.c hrtimer: Return ktime_t from hrtimer_get_next_event()/hrtimer_next_event_without() 2026-05-06 08:33:09 +02:00
tick-sched.h
time_test.c time/kunit: Document handling of negative years of is_leap() 2026-02-02 12:37:54 +01:00
time.c time/jiffies: Mark jiffies_64_to_clock_t() notrace 2026-03-11 10:33:12 +01:00
timeconst.bc
timeconv.c
timecounter.c time/timecounter: Inline timecounter_cyc2time() 2025-12-15 20:16:49 +01:00
timekeeping_debug.c
timekeeping_internal.h
timekeeping.c Linux 7.0-rc4 2026-03-21 08:02:36 +01:00
timekeeping.h timekeeping: Provide infrastructure for coupled clockevents 2026-02-27 16:40:08 +01:00
timer_list.c timer_list: Print offset as signed integer 2026-03-12 12:15:54 +01:00
timer_migration.c timers/migration: Temporarily disable per capacity hierarchies 2026-06-09 17:25:54 +02:00
timer_migration.h timers/migration: Turn tmigr_hierarchy level_list into a flexible array 2026-06-02 21:34:03 +02:00
timer.c hrtimer: Return ktime_t from hrtimer_get_next_event()/hrtimer_next_event_without() 2026-05-06 08:33:09 +02:00
vsyscall.c