[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240823103337.23602-3-zhangtianyang@loongson.cn>
Date: Fri, 23 Aug 2024 18:33:31 +0800
From: Tianyang Zhang <zhangtianyang@...ngson.cn>
To: corbet@....net,
alexs@...nel.org,
chenhuacai@...nel.org,
kernel@...0n.name,
tglx@...utronix.de,
jiaxun.yang@...goat.com,
gaoliang@...ngson.cn,
wangliupu@...ngson.cn,
lvjianmin@...ngson.cn,
zhangtianyang@...ngson.cn,
yijun@...ngson.cn,
mhocko@...e.com,
akpm@...ux-foundation.org,
dianders@...omium.org,
maobibo@...ngson.cn,
xry111@...111.site,
zhaotianrui@...ngson.cn,
nathan@...nel.org,
yangtiezhu@...ngson.cn,
zhoubinbin@...ngson.cn
Cc: loongarch@...ts.linux.dev,
linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org,
Huacai Chen <chenhuacai@...ngson.cn>
Subject: [PATCH v11 2/7] LoongArch: Define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE
From: Huacai Chen <chenhuacai@...ngson.cn>
Currently we call irq_set_noprobe() in a loop for all IRQs, but indeed
it only works for IRQs below NR_IRQS_LEGACY because at init_IRQ() only
legacy interrupts have been allocated.
Instead, we can define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE in asm/hwirq.h
and the core will automatically set the flag for all interrupts.
Signed-off-by: Huacai Chen <chenhuacai@...ngson.cn>
Signed-off-by: Tianyang Zhang <zhangtianyang@...ngson.cn>
---
arch/loongarch/include/asm/hw_irq.h | 2 ++
arch/loongarch/kernel/irq.c | 3 ---
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/loongarch/include/asm/hw_irq.h b/arch/loongarch/include/asm/hw_irq.h
index af4f4e8fbd85..8156ffb67415 100644
--- a/arch/loongarch/include/asm/hw_irq.h
+++ b/arch/loongarch/include/asm/hw_irq.h
@@ -9,6 +9,8 @@
extern atomic_t irq_err_count;
+#define ARCH_IRQ_INIT_FLAGS IRQ_NOPROBE
+
/*
* interrupt-retrigger: NOP for now. This may not be appropriate for all
* machines, we'll see ...
diff --git a/arch/loongarch/kernel/irq.c b/arch/loongarch/kernel/irq.c
index f4991c03514f..adac8fcbb2ac 100644
--- a/arch/loongarch/kernel/irq.c
+++ b/arch/loongarch/kernel/irq.c
@@ -102,9 +102,6 @@ void __init init_IRQ(void)
mp_ops.init_ipi();
#endif
- for (i = 0; i < NR_IRQS; i++)
- irq_set_noprobe(i);
-
for_each_possible_cpu(i) {
page = alloc_pages_node(cpu_to_node(i), GFP_KERNEL, order);
--
2.20.1
Powered by blists - more mailing lists