As reported by kernel test robot, a randconfig with high amount of
debuging options can lead to build failure for undefined reference
to replay_soft_interrupts() on ppc32.
This is due to gcc not seeing that __prep_irq_for_enabled_exit()
always returns true on ppc32 because it doesn't inline it for
some reason.
Force inlining of __prep_irq_for_enabled_exit() to fix the build.
Reported-by: kernel test robot <redacted>
Signed-off-by: Christophe Leroy <redacted>
Fixes: 344bb20b159d ("powerpc/syscall: Make interrupt.c buildable on PPC32")
---
arch/powerpc/kernel/interrupt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -149,7 +149,7 @@ notrace long system_call_exception(long r3, long r4, long r5,*enabledwhentheinterrupthandlerreturns(indicatingaprocess-context/*synchronousinterrupt)thenirqs_enabledshouldbetrue.*/-staticnotraceinlinebool__prep_irq_for_enabled_exit(boolclear_ri)+staticnotrace__always_inlinebool__prep_irq_for_enabled_exit(boolclear_ri){/* This must be done with RI=1 because tracing may touch vmaps */trace_hardirqs_on();
From: Nicholas Piggin <npiggin@gmail.com> Date: 2021-02-25 10:55:07
Excerpts from Christophe Leroy's message of February 24, 2021 4:34 pm:
As reported by kernel test robot, a randconfig with high amount of
debuging options can lead to build failure for undefined reference
to replay_soft_interrupts() on ppc32.
This is due to gcc not seeing that __prep_irq_for_enabled_exit()
always returns true on ppc32 because it doesn't inline it for
some reason.
Force inlining of __prep_irq_for_enabled_exit() to fix the build.
Reported-by: kernel test robot <redacted>
Signed-off-by: Christophe Leroy <redacted>
Acked-by: Nicholas Piggin <npiggin@gmail.com>
quoted hunk
Fixes: 344bb20b159d ("powerpc/syscall: Make interrupt.c buildable on PPC32")
---
arch/powerpc/kernel/interrupt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -149,7 +149,7 @@ notrace long system_call_exception(long r3, long r4, long r5,*enabledwhentheinterrupthandlerreturns(indicatingaprocess-context/*synchronousinterrupt)thenirqs_enabledshouldbetrue.*/-staticnotraceinlinebool__prep_irq_for_enabled_exit(boolclear_ri)+staticnotrace__always_inlinebool__prep_irq_for_enabled_exit(boolclear_ri){/* This must be done with RI=1 because tracing may touch vmaps */trace_hardirqs_on();
From: Michael Ellerman <hidden> Date: 2021-03-14 10:12:59
On Wed, 24 Feb 2021 06:34:22 +0000 (UTC), Christophe Leroy wrote:
As reported by kernel test robot, a randconfig with high amount of
debuging options can lead to build failure for undefined reference
to replay_soft_interrupts() on ppc32.
This is due to gcc not seeing that __prep_irq_for_enabled_exit()
always returns true on ppc32 because it doesn't inline it for
some reason.
[...]