irqchip/sifive-plic: Setup cpuhp once after boot CPU handler is present
authorAnup Patel <anup.patel@wdc.com>
Mon, 18 May 2020 09:14:40 +0000 (14:44 +0530)
committerMarc Zyngier <maz@kernel.org>
Mon, 25 May 2020 09:36:53 +0000 (10:36 +0100)
commit2234ae846ccb9ebdf4c391824cb79e73674dceda
tree8b38980639d35553face5c90abe5b966d54a0208
parent2458ed31e9b9ab40d78a452ab2650a0857556e85
irqchip/sifive-plic: Setup cpuhp once after boot CPU handler is present

For multiple PLIC instances, the plic_init() is called once for each
PLIC instance. Due to this we have two issues:
1. cpuhp_setup_state() is called multiple times
2. plic_starting_cpu() can crash for boot CPU if cpuhp_setup_state()
   is called before boot CPU PLIC handler is available.

Address both issues by only initializing the HP notifiers when
the boot CPU setup is complete.

Fixes: f1ad1133b18f ("irqchip/sifive-plic: Add support for multiple PLICs")
Signed-off-by: Anup Patel <anup.patel@wdc.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
Acked-by: Palmer Dabbelt <palmerdabbelt@google.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200518091441.94843-3-anup.patel@wdc.com
drivers/irqchip/irq-sifive-plic.c