From: Arnd Bergmann <[email protected]>
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 <[email protected]>
Fixes: 54f481a2308e ("ARM: remove old-style irq entry")
Fixes: 52d240871760 ("irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER")
Signed-off-by: Arnd Bergmann <[email protected]>
---
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
On Wed, Mar 9, 2022 at 3:41 PM Arnd Bergmann <[email protected]> wrote:
> From: Arnd Bergmann <[email protected]>
>
> 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 <[email protected]>
> Fixes: 54f481a2308e ("ARM: remove old-style irq entry")
> Fixes: 52d240871760 ("irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER")
> Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Linus Walleij <[email protected]>
Thanks for fixing this so quickly!
Yours,
Linus Walleij
On Wed, 9 Mar 2022 at 15:41, Arnd Bergmann <[email protected]> wrote:
>
> From: Arnd Bergmann <[email protected]>
>
> 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 <[email protected]>
> Fixes: 54f481a2308e ("ARM: remove old-style irq entry")
> Fixes: 52d240871760 ("irqchip: nvic: Use GENERIC_IRQ_MULTI_HANDLER")
> Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed by: Ard Biesheuvel <[email protected]>
> ---
> 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
>