On Sun, May 11, 2025 at 06:32:25PM +0530, Madhavan Srinivasan wrote: > > Can you try with this patch, I am testing this in my setup. > > Maddy > > > diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c > index a0e8b998c9b5..2ce7a4f2b2fb 100644 > --- a/arch/powerpc/kernel/irq.c > +++ b/arch/powerpc/kernel/irq.c > @@ -276,7 +276,11 @@ static __always_inline void call_do_irq(struct pt_regs > *regs, void *sp) > [callee] "i" (__do_irq) > : // Clobbers > "lr", "xer", "ctr", "memory", "cr0", "cr1", "cr5", "cr6", > +#if __GNUC__ >= 15 > + "cr7", "r0", "r2", "r4", "r5", "r6", "r7", "r8", "r9", > "r10", > +#else > "cr7", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10", > +#endif > "r11", "r12" > ); > }
That works as long as I have CONFIG_PPC_KERNEL_PCREL enabled, but with it disabled, it fails to compile. With PCREL disabled, the kernel runs just fine without the r2 clobber. I guess it needs to be: #if __GNUC__ >= 15 && IS_ENABLED(CONFIG_PPC_KERNEL_PCREL) or something like that. Thanks, Paul.