Now, all pNMI can be detected before the dispatching of __el1_pnmi() or __el1_interrupt(), and __el1_interrupt() will never be called in pNMI context. As a result, the judgement of pNMI in arm64_preempt_schedule_irq() becomes unnecessary. Signed-off-by: Pingfan Liu <kernelfans@xxxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Will Deacon <will@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Marc Zyngier <maz@xxxxxxxxxx> Cc: Joey Gouly <joey.gouly@xxxxxxx> Cc: Sami Tolvanen <samitolvanen@xxxxxxxxxx> Cc: Julien Thierry <julien.thierry@xxxxxxx> Cc: Yuichi Ito <ito-yuichi@xxxxxxxxxxx> Cc: rcu@xxxxxxxxxxxxxxx To: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx --- arch/arm64/kernel/entry-common.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c index afcde43f1b73..57d654b915a5 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -224,15 +224,6 @@ static void __sched arm64_preempt_schedule_irq(void) { lockdep_assert_irqs_disabled(); - /* - * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC - * priority masking is used the GIC irqchip driver will clear DAIF.IF - * using gic_arch_enable_irqs() for normal IRQs. If anything is set in - * DAIF we must have handled an NMI, so skip preemption. - */ - if (system_uses_irq_prio_masking() && read_sysreg(daif)) - return; - /* * Preempting a task from an IRQ means we leave copies of PSTATE * on the stack. cpufeature's enable calls may modify PSTATE, but -- 2.31.1