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.

Reply via email to