[PATCH 1/2] ARM: fix building NOMMU ARMv4/v5 kernels

Arnd Bergmann arnd at kernel.org
Wed Mar 9 06:40:47 PST 2022


From: Arnd Bergmann <arnd at arndb.de>

The removal of the old-style irq entry broke obscure NOMMU
configurations on machines that have an MMU:

ld.lld: error: undefined symbol: generic_handle_arch_irq
 referenced by kernel/entry-armv.o:(__irq_svc) in archive arch/arm/built-in.a

A follow-up patch to convert nvic to the generic_handle_arch_irq()
could have fixed this by removing the Kconfig conditional, but did
it differently.

Change the Kconfig logic so ARM machines now unconditionally
enable the feature.

I have also submitted a patch to remove support for the configurations
that broke, but fixing the regression first is a trivial and correct
change.

Reported-by: kernel test robot <lkp at intel.com>
Fixes: 54f481a2308e ("ARM: remove old-style irq entry")
Fixes: 52d240871760 ("irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER")
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
---
This patch should go into the arm/devel-stable branch that has
the arm-irq-and-vmap-stacks-for-rmk patches from Ard
---
 arch/arm/Kconfig        | 2 +-
 drivers/irqchip/Kconfig | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e9975ddd5034..5f0b40bab4fb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -60,7 +60,7 @@ config ARM
 	select GENERIC_CPU_AUTOPROBE
 	select GENERIC_EARLY_IOREMAP
 	select GENERIC_IDLE_POLL_SETUP
-	select GENERIC_IRQ_MULTI_HANDLER if MMU
+	select GENERIC_IRQ_MULTI_HANDLER
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_SHOW
 	select GENERIC_IRQ_SHOW_LEVEL
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index 488eaa14d3a7..7038957f4a77 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -58,7 +58,6 @@ config ARM_NVIC
 	bool
 	select IRQ_DOMAIN_HIERARCHY
 	select GENERIC_IRQ_CHIP
-	select GENERIC_IRQ_MULTI_HANDLER
 
 config ARM_VIC
 	bool
-- 
2.29.2




More information about the linux-arm-kernel mailing list