Hi Greg,
* gregkh@linuxfoundation.org gregkh@linuxfoundation.org:
The patch below does not apply to the 5.15-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to stable@vger.kernel.org.
Please apply below patch instead to v5.15-stable.
Thanks! Helge
From 7dacfca67135dc703df89d273553d8f5259776ce Mon Sep 17 00:00:00 2001 From: Helge Deller deller@gmx.de Date: Mon, 9 May 2022 18:13:29 +0200 Subject: [PATCH] Revert "parisc: Mark sched_clock unstable only if clocks are not syncronized"
This backport reverts clock changes which made the Linux internal clock unreliable on 32- and 64-bit SMP kernels. This patch brings the clock code in sync with upstream v5.18-rc6.
Signed-off-by: Helge Deller deller@gmx.de Noticed-by: John David Anglin dave.anglin@bell.net
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c index cceb09855e03..3fb86ee507dd 100644 --- a/arch/parisc/kernel/setup.c +++ b/arch/parisc/kernel/setup.c @@ -150,6 +150,8 @@ void __init setup_arch(char **cmdline_p) #ifdef CONFIG_PA11 dma_ops_init(); #endif + + clear_sched_clock_stable(); }
/* diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 061119a56fbe..d8e59a1000ab 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c @@ -249,13 +249,9 @@ void __init time_init(void) static int __init init_cr16_clocksource(void) { /* - * The cr16 interval timers are not syncronized across CPUs, even if - * they share the same socket. + * The cr16 interval timers are not synchronized across CPUs. */ if (num_online_cpus() > 1 && !running_on_qemu) { - /* mark sched_clock unstable */ - clear_sched_clock_stable(); - clocksource_cr16.name = "cr16_unstable"; clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE; clocksource_cr16.rating = 0;