clocksource/drivers/timer-riscv: Stop stimecmp when cpu hotplug
authorNick Hu <nick.hu@sifive.com>
Wed, 19 Feb 2025 11:41:35 +0000 (19:41 +0800)
committerAlexandre Ghiti <alexghiti@rivosinc.com>
Tue, 18 Mar 2025 12:59:03 +0000 (12:59 +0000)
Stop the timer when the cpu is going to be offline otherwise the
timer interrupt may be pending while performing power-down.

Suggested-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/lkml/20240829033904.477200-3-nick.hu@sifive.com/T/#u
Signed-off-by: Nick Hu <nick.hu@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20250219114135.27764-3-nick.hu@sifive.com
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
drivers/clocksource/timer-riscv.c

index 48ce50c5f5e68eeec9de696476d424dd5b2c00d0..4d7cf338824a3b21461c2756a002236dedc48f5f 100644 (file)
@@ -126,7 +126,13 @@ static int riscv_timer_starting_cpu(unsigned int cpu)
 
 static int riscv_timer_dying_cpu(unsigned int cpu)
 {
+       /*
+        * Stop the timer when the cpu is going to be offline otherwise
+        * the timer interrupt may be pending while performing power-down.
+        */
+       riscv_clock_event_stop();
        disable_percpu_irq(riscv_clock_event_irq);
+
        return 0;
 }