irqchip/riscv-imsic: Start local sync timer on correct CPU
authorAndrew Bresticker <abrestic@rivosinc.com>
Wed, 14 May 2025 17:13:20 +0000 (10:13 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 15 May 2025 14:01:50 +0000 (16:01 +0200)
commit08fb624802d8786253994d8ebdbbcdaa186f04f5
treef6de9c31238df7131610413106c9880b8c6b544d
parentfb0ea6e4878a45b1ac81972027907fc424a792e6
irqchip/riscv-imsic: Start local sync timer on correct CPU

When starting the local sync timer to synchronize the state of a remote
CPU it should be added on the CPU to be synchronized, not the initiating
CPU. This results in interrupt delivery being delayed until the timer
eventually runs (due to another mask/unmask/migrate operation) on the
target CPU.

Fixes: 0f67911e821c ("irqchip/riscv-imsic: Separate next and previous pointers in IMSIC vector")
Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/all/20250514171320.3494917-1-abrestic@rivosinc.com
drivers/irqchip/irq-riscv-imsic-state.c