Skip to content

Commit fe9bdea

Browse files
Thomas Gleixnergregkh
authored andcommitted
time/jiffies: Register jiffies clocksource before usage
[ Upstream commit f24df84 ] 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: 76031d9 ("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 Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent bf9b5bb commit fe9bdea

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

kernel/time/jiffies.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,14 @@ EXPORT_SYMBOL(get_jiffies_64);
6161

6262
EXPORT_SYMBOL(jiffies);
6363

64-
static int __init init_jiffies_clocksource(void)
65-
{
66-
return __clocksource_register(&clocksource_jiffies);
67-
}
68-
69-
core_initcall(init_jiffies_clocksource);
64+
static bool cs_jiffies_registered __initdata;
7065

7166
struct clocksource * __init __weak clocksource_default_clock(void)
7267
{
68+
if (!cs_jiffies_registered) {
69+
__clocksource_register(&clocksource_jiffies);
70+
cs_jiffies_registered = true;
71+
}
7372
return &clocksource_jiffies;
7473
}
7574

0 commit comments

Comments
 (0)