Subject: Re: linux-next: build failure after merge of the ftrace tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 21 Nov 2024 10:27:21 +1100

Hi all,

On Wed, 6 Nov 2024 14:04:14 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> After merging the ftrace tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
> 
> In file included from include/linux/ftrace.h:23,
>                  from include/linux/kvm_host.h:32,
>                  from arch/powerpc/include/asm/kvm_ppc.h:19,
>                  from arch/powerpc/include/asm/dbell.h:17,
>                  from arch/powerpc/kernel/asm-offsets.c:36:
> arch/powerpc/include/asm/ftrace.h: In function 'arch_ftrace_set_direct_caller':
> arch/powerpc/include/asm/ftrace.h:141:38: error: invalid use of undefined type 'struct ftrace_regs'
>   141 |         struct pt_regs *regs = &fregs->regs;
>       |                                      ^~
> 
> Caused by commit
> 
>   7888af4166d4 ("ftrace: Make ftrace_regs abstract from direct use")
> 
> interacting with commit
> 
>   a52f6043a223 ("powerpc/ftrace: Add support for DYNAMIC_FTRACE_WITH_DIRECT_CALLS")
> 
> from the powerpc tree.
> 
> I have applied the following merge fix patch for today.
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Wed, 6 Nov 2024 13:33:53 +1100
> Subject: [PATCH] fix up for "ftrace: Make ftrace_regs abstract from direct use"
> 
> from the ftrace tree interacting with "powerpc/ftrace: Add support for
> DYNAMIC_FTRACE_WITH_DIRECT_CALLS" from the powerpc tree
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  arch/powerpc/include/asm/ftrace.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/include/asm/ftrace.h b/arch/powerpc/include/asm/ftrace.h
> index bb2c90997618..db481b336bca 100644
> --- a/arch/powerpc/include/asm/ftrace.h
> +++ b/arch/powerpc/include/asm/ftrace.h
> @@ -138,7 +138,7 @@ unsigned long ftrace_call_adjust(unsigned long addr);
>   */
>  static inline void arch_ftrace_set_direct_caller(struct ftrace_regs *fregs, unsigned long addr)
>  {
> -	struct pt_regs *regs = &fregs->regs;
> +	struct pt_regs *regs = &arch_ftrace_regs(fregs)->regs;
>  
>  	regs->orig_gpr3 = addr;
>  }

This patch is now needed when the powerpc tree is merged with Linus' tree.

-- 
Cheers,
Stephen Rothwell