On Sun, Jul 05, 2026 at 08:00:21PM +0200, Andreas Schwab wrote:
> Most of the time it prints nothing, and when it prints something it is
> mostly scrolled out.
> 
> 
> .handle_softirqs+0xcc/0x264
> .do_softirq_own_stack+0x30/0x38
> .__irq_exit_rcu++0x7c/0x120
> .timer_interrupt+90x1ß9/0x2c4
> decrementer_common_virt+9x214/0x22ß
> 
> -- 
> Andreas Schwab, [email protected]
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
> "And now for something completely different."

Hey,

Thanks for reporting this. I don't have a powermacG5 to test this.
Can you try out the below diff and check whether this fixes the issue?
Please note this is not a proper fix, I just want to understand the issue
so that i can make a proper fix.

Regards,
Mukesh


diff --git a/arch/powerpc/include/asm/entry-common.h 
b/arch/powerpc/include/asm/entry-common.h
index fc636c42e89a..b6373bae4524 100644
--- a/arch/powerpc/include/asm/entry-common.h
+++ b/arch/powerpc/include/asm/entry-common.h
@@ -286,14 +286,6 @@ static inline void 
arch_interrupt_async_enter_prepare(struct pt_regs *regs)
 
 static inline void arch_interrupt_async_exit_prepare(struct pt_regs *regs)
 {
-       /*
-        * Adjust at exit so the main handler sees the true NIA. This must
-        * come before irq_exit() because irq_exit can enable interrupts, and
-        * if another interrupt is taken before nap_adjust_return has run
-        * here, then that interrupt would return directly to idle nap return.
-        */
-       nap_adjust_return(regs);
-
        arch_interrupt_exit_prepare(regs);
 }
 
diff --git a/arch/powerpc/include/asm/interrupt.h 
b/arch/powerpc/include/asm/interrupt.h
index fb42a664ae54..1b45a49e9bed 100644
--- a/arch/powerpc/include/asm/interrupt.h
+++ b/arch/powerpc/include/asm/interrupt.h
@@ -246,6 +246,7 @@ interrupt_handler void func(struct pt_regs *regs)           
        \
        instrumentation_begin();                                        \
        irq_enter_rcu();                                                \
        ____##func (regs);                                              \
+       nap_adjust_return(regs);                                        \
        irq_exit_rcu();                                                 \
        instrumentation_end();                                          \
        arch_interrupt_async_exit_prepare(regs);                        \


Reply via email to