From 57c9c7bf52c8473a6b9b7fa3547b468c0a91bc60 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Sat, 21 Mar 2026 17:20:27 +0800 Subject: [PATCH] MIPS: loongson64: Override arch_dynirq_lower_bound to reserve LPC IRQs On some Loongson 3A devices, a LPC bus is present and some legacy devices (e.g. 8259) on it expect hardcoded low interrupt numbers. However currently the expected low range interrupt numbers are not exempted from the dynamic allocation, which leads to conflicts when registering LPC interrupts in the fixed range. Override arch_dynirq_lower_bound() to reserve these low range interrupt numbers and prevent them from being dynamically allocated. Signed-off-by: Icenowy Zheng Signed-off-by: Thomas Gleixner Reviewed-by: Huacai Chen Link: https://patch.msgid.link/20260321092032.3502701-2-zhengxingda@iscas.ac.cn --- arch/mips/loongson64/init.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/mips/loongson64/init.c b/arch/mips/loongson64/init.c index 5f73f8663ab2..c7cc5a3d7817 100644 --- a/arch/mips/loongson64/init.c +++ b/arch/mips/loongson64/init.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -227,3 +228,8 @@ void __init arch_init_irq(void) reserve_pio_range(); irqchip_init(); } + +unsigned int arch_dynirq_lower_bound(unsigned int from) +{ + return MAX(from, NR_IRQS_LEGACY); +}