From 41ce1d641a81df71722bb8b63987ea37eea2206f Mon Sep 17 00:00:00 2001 From: Nick Hudson Date: Sun, 31 Oct 2021 07:12:03 +0000 Subject: [PATCH 4/7] Only perform pic_unblock_percpu if all of the following are true - mp_online, i.e. APs are running. - is_mpsafe, i.e. the interrupt handler is MP safe - is_percpu, i.e. the interrupt actually requires it! The last one is only currently true for GIC PPI+SGI and the percpu unblock is triggered for PMU. XXXothers? --- sys/arch/arm/pic/pic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arch/arm/pic/pic.c b/sys/arch/arm/pic/pic.c index 76abb5d6ad67..5213a000c733 100644 --- a/sys/arch/arm/pic/pic.c +++ b/sys/arch/arm/pic/pic.c @@ -792,7 +792,7 @@ pic_establish_intr(struct pic_softc *pic, int irq, int ipl, int type, (*pic->pic_ops->pic_establish_irq)(pic, is); unblock: - if (!mp_online || !is->is_mpsafe) { + if (!mp_online || !is->is_mpsafe || !is->is_percpu) { (*pic->pic_ops->pic_unblock_irqs)(pic, is->is_irq & ~0x1f, __BIT(is->is_irq & 0x1f)); } else { -- 2.25.1