arm64: ftrace: fix build error with CONFIG_FUNCTION_GRAPH_TRACER=n

Message ID 20230623152204.2216297-1-arnd@kernel.org
State New
Headers
Series arm64: ftrace: fix build error with CONFIG_FUNCTION_GRAPH_TRACER=n |

Commit Message

Arnd Bergmann June 23, 2023, 3:21 p.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

It appears that a merge conflict ended up hiding a newly added constant
in some configurations:

arch/arm64/kernel/entry-ftrace.S: Assembler messages:
arch/arm64/kernel/entry-ftrace.S:59: Error: undefined symbol FTRACE_OPS_DIRECT_CALL used as an immediate value

FTRACE_OPS_DIRECT_CALL is still used when CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
is enabled, even if CONFIG_FUNCTION_GRAPH_TRACER is disabled, so change the
ifdef accordingly.

Fixes: 3646970322464 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm64/kernel/asm-offsets.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Florent Revest June 23, 2023, 3:35 p.m. UTC | #1
On Fri, Jun 23, 2023 at 5:22 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> It appears that a merge conflict ended up hiding a newly added constant
> in some configurations:
>
> arch/arm64/kernel/entry-ftrace.S: Assembler messages:
> arch/arm64/kernel/entry-ftrace.S:59: Error: undefined symbol FTRACE_OPS_DIRECT_CALL used as an immediate value
>
> FTRACE_OPS_DIRECT_CALL is still used when CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
> is enabled, even if CONFIG_FUNCTION_GRAPH_TRACER is disabled, so change the
> ifdef accordingly.
>
> Fixes: 3646970322464 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm64/kernel/asm-offsets.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
> index 757d01a68ffd0..5ff1942b04fcf 100644
> --- a/arch/arm64/kernel/asm-offsets.c
> +++ b/arch/arm64/kernel/asm-offsets.c
> @@ -213,9 +213,9 @@ int main(void)
>    DEFINE(FGRET_REGS_X7,                        offsetof(struct fgraph_ret_regs, regs[7]));
>    DEFINE(FGRET_REGS_FP,                        offsetof(struct fgraph_ret_regs, fp));
>    DEFINE(FGRET_REGS_SIZE,              sizeof(struct fgraph_ret_regs));
> +#endif
>  #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
>    DEFINE(FTRACE_OPS_DIRECT_CALL,       offsetof(struct ftrace_ops, direct_call));
> -#endif
>  #endif
>    return 0;
>  }
> --
> 2.39.2
>

Acked-by: Florent Revest <revest@chromium.org>

Good catch, thank you Arnd!
  
Randy Dunlap June 29, 2023, 12:04 a.m. UTC | #2
On 6/23/23 08:35, Florent Revest wrote:
> On Fri, Jun 23, 2023 at 5:22 PM Arnd Bergmann <arnd@kernel.org> wrote:
>>
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> It appears that a merge conflict ended up hiding a newly added constant
>> in some configurations:
>>
>> arch/arm64/kernel/entry-ftrace.S: Assembler messages:
>> arch/arm64/kernel/entry-ftrace.S:59: Error: undefined symbol FTRACE_OPS_DIRECT_CALL used as an immediate value
>>
>> FTRACE_OPS_DIRECT_CALL is still used when CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
>> is enabled, even if CONFIG_FUNCTION_GRAPH_TRACER is disabled, so change the
>> ifdef accordingly.
>>
>> Fixes: 3646970322464 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> ---
>>  arch/arm64/kernel/asm-offsets.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
>> index 757d01a68ffd0..5ff1942b04fcf 100644
>> --- a/arch/arm64/kernel/asm-offsets.c
>> +++ b/arch/arm64/kernel/asm-offsets.c
>> @@ -213,9 +213,9 @@ int main(void)
>>    DEFINE(FGRET_REGS_X7,                        offsetof(struct fgraph_ret_regs, regs[7]));
>>    DEFINE(FGRET_REGS_FP,                        offsetof(struct fgraph_ret_regs, fp));
>>    DEFINE(FGRET_REGS_SIZE,              sizeof(struct fgraph_ret_regs));
>> +#endif
>>  #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
>>    DEFINE(FTRACE_OPS_DIRECT_CALL,       offsetof(struct ftrace_ops, direct_call));
>> -#endif
>>  #endif
>>    return 0;
>>  }
>> --
>> 2.39.2
>>
> 
> Acked-by: Florent Revest <revest@chromium.org>
> 
> Good catch, thank you Arnd!


Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org> # build-tested

Thanks.
  
Catalin Marinas June 30, 2023, 4:02 p.m. UTC | #3
On Fri, Jun 23, 2023 at 05:21:55PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> It appears that a merge conflict ended up hiding a newly added constant
> in some configurations:
> 
> arch/arm64/kernel/entry-ftrace.S: Assembler messages:
> arch/arm64/kernel/entry-ftrace.S:59: Error: undefined symbol FTRACE_OPS_DIRECT_CALL used as an immediate value
> 
> FTRACE_OPS_DIRECT_CALL is still used when CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
> is enabled, even if CONFIG_FUNCTION_GRAPH_TRACER is disabled, so change the
> ifdef accordingly.
> 
> Fixes: 3646970322464 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm64/kernel/asm-offsets.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
> index 757d01a68ffd0..5ff1942b04fcf 100644
> --- a/arch/arm64/kernel/asm-offsets.c
> +++ b/arch/arm64/kernel/asm-offsets.c
> @@ -213,9 +213,9 @@ int main(void)
>    DEFINE(FGRET_REGS_X7,			offsetof(struct fgraph_ret_regs, regs[7]));
>    DEFINE(FGRET_REGS_FP,			offsetof(struct fgraph_ret_regs, fp));
>    DEFINE(FGRET_REGS_SIZE,		sizeof(struct fgraph_ret_regs));
> +#endif
>  #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
>    DEFINE(FTRACE_OPS_DIRECT_CALL,	offsetof(struct ftrace_ops, direct_call));
> -#endif
>  #endif
>    return 0;
>  }

Acked-by: Catalin Marinas <catalin.marinas@arm.com>

Steven, since the fixed commit went in via your tree, could you please
pick this up as well for -rc1? Otherwise I'll queue it for -rc2 once the
ftrace changes turn up in -rc1.

Thanks.
  
Steven Rostedt July 4, 2023, 1:59 p.m. UTC | #4
On Fri, 30 Jun 2023 17:02:39 +0100
Catalin Marinas <catalin.marinas@arm.com> wrote:
> > diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
> > index 757d01a68ffd0..5ff1942b04fcf 100644
> > --- a/arch/arm64/kernel/asm-offsets.c
> > +++ b/arch/arm64/kernel/asm-offsets.c
> > @@ -213,9 +213,9 @@ int main(void)
> >    DEFINE(FGRET_REGS_X7,			offsetof(struct fgraph_ret_regs, regs[7]));
> >    DEFINE(FGRET_REGS_FP,			offsetof(struct fgraph_ret_regs, fp));
> >    DEFINE(FGRET_REGS_SIZE,		sizeof(struct fgraph_ret_regs));
> > +#endif
> >  #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
> >    DEFINE(FTRACE_OPS_DIRECT_CALL,	offsetof(struct ftrace_ops, direct_call));
> > -#endif
> >  #endif
> >    return 0;
> >  }  
> 
> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
> 
> Steven, since the fixed commit went in via your tree, could you please
> pick this up as well for -rc1? Otherwise I'll queue it for -rc2 once the
> ftrace changes turn up in -rc1.

I'm working on a fixes pull request for Linus. I'll apply this to it
and start my testing on it. I should have a pull request to Linus
before the end of the week.

-- Steve
  

Patch

diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
index 757d01a68ffd0..5ff1942b04fcf 100644
--- a/arch/arm64/kernel/asm-offsets.c
+++ b/arch/arm64/kernel/asm-offsets.c
@@ -213,9 +213,9 @@  int main(void)
   DEFINE(FGRET_REGS_X7,			offsetof(struct fgraph_ret_regs, regs[7]));
   DEFINE(FGRET_REGS_FP,			offsetof(struct fgraph_ret_regs, fp));
   DEFINE(FGRET_REGS_SIZE,		sizeof(struct fgraph_ret_regs));
+#endif
 #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
   DEFINE(FTRACE_OPS_DIRECT_CALL,	offsetof(struct ftrace_ops, direct_call));
-#endif
 #endif
   return 0;
 }