arm64: ftrace: fix building without CONFIG_MODULES
authorWill Deacon <will.deacon@arm.com>
Mon, 12 Jun 2017 13:43:25 +0000 (14:43 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 12 Jun 2017 13:43:25 +0000 (14:43 +0100)
commit687644209a6e95576ea453977b26dbd6248cadda
tree4be4a28254ff555edd52585f9b642311aad1cda0
parent1eb34b6e5160f20e1889b2551182bf4d61084d6b
arm64: ftrace: fix building without CONFIG_MODULES

When CONFIG_MODULES is disabled, we cannot dereference a module pointer:

arch/arm64/kernel/ftrace.c: In function 'ftrace_make_call':
arch/arm64/kernel/ftrace.c:107:36: error: dereferencing pointer to incomplete type 'struct module'
   trampoline = (unsigned long *)mod->arch.ftrace_trampoline;

Also, the within_module() function is not defined:

arch/arm64/kernel/ftrace.c: In function 'ftrace_make_nop':
arch/arm64/kernel/ftrace.c:171:8: error: implicit declaration of function 'within_module'; did you mean 'init_module'? [-Werror=implicit-function-declaration]

This addresses both by adding replacing the IS_ENABLED(CONFIG_ARM64_MODULE_PLTS)
checks with #ifdef versions.

Fixes: e71a4e1bebaf ("arm64: ftrace: add support for far branches to dynamic ftrace")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/ftrace.c