[<prev] [next>] [day] [month] [year] [list]
Message-ID: <163524336530.626.3819191665877459755.tip-bot2@tip-bot2>
Date: Tue, 26 Oct 2021 10:16:05 -0000
From: "irqchip-bot for Mark Rutland" <tip-bot2@...utronix.de>
To: linux-kernel@...r.kernel.org
Cc: Mark Rutland <mark.rutland@....com>, Marc Zyngier <maz@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Vineet Gupta <vgupta@...nel.org>
Subject: [irqchip: irq/irqchip-next] irq: arc: avoid CONFIG_HANDLE_DOMAIN_IRQ
The following commit has been merged into the irq/irqchip-next branch of irqchip:
Commit-ID: e54957fa3b3b374c63c66f60a8236dd95cf5e2be
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/e54957fa3b3b374c63c66f60a8236dd95cf5e2be
Author: Mark Rutland <mark.rutland@....com>
AuthorDate: Tue, 19 Oct 2021 12:26:41 +01:00
Committer: Mark Rutland <mark.rutland@....com>
CommitterDate: Mon, 25 Oct 2021 10:05:28 +01:00
irq: arc: avoid CONFIG_HANDLE_DOMAIN_IRQ
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@....com>
Reviewed-by: Marc Zyngier <maz@...nel.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: Vineet Gupta <vgupta@...nel.org>
---
arch/arc/Kconfig | 1 -
arch/arc/kernel/irq.c | 10 +++++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 3a5a80f..b4ae605 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -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
diff --git a/arch/arc/kernel/irq.c b/arch/arc/kernel/irq.c
index ef909dd..dd09b58 100644
--- a/arch/arc/kernel/irq.c
+++ b/arch/arc/kernel/irq.c
@@ -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();
}
Powered by blists - more mailing lists