irq: arc: avoid CONFIG_HANDLE_DOMAIN_IRQ
authorMark Rutland <mark.rutland@arm.com>
Tue, 19 Oct 2021 11:26:41 +0000 (12:26 +0100)
committerMark Rutland <mark.rutland@arm.com>
Mon, 25 Oct 2021 09:05:28 +0000 (10:05 +0100)
In preparation for removing HANDLE_DOMAIN_IRQ, have arch/arc perform all
the necessary IRQ entry accounting in its entry code.

There should be no functional change as a result of this patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vineet Gupta <vgupta@kernel.org>
arch/arc/Kconfig
arch/arc/kernel/irq.c

index 3a5a80f..b4ae605 100644 (file)
@@ -40,7 +40,6 @@ config ARC
        select HAVE_KRETPROBES
        select HAVE_MOD_ARCH_SPECIFIC
        select HAVE_PERF_EVENTS
-       select HANDLE_DOMAIN_IRQ
        select IRQ_DOMAIN
        select MODULES_USE_ELF_RELA
        select OF
index ef909dd..dd09b58 100644 (file)
@@ -6,6 +6,8 @@
 #include <linux/interrupt.h>
 #include <linux/irqchip.h>
 #include <asm/mach_desc.h>
+
+#include <asm/irq_regs.h>
 #include <asm/smp.h>
 
 /*
@@ -39,5 +41,11 @@ void __init init_IRQ(void)
  */
 void arch_do_IRQ(unsigned int hwirq, struct pt_regs *regs)
 {
-       handle_domain_irq(NULL, hwirq, regs);
+       struct pt_regs *old_regs;
+
+       irq_enter();
+       old_regs = set_irq_regs(regs);
+       generic_handle_domain_irq(NULL, hwirq);
+       set_irq_regs(old_regs);
+       irq_exit();
 }