Commit ececdc02 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman

lkdtm: mark execute_location as noinline

The kernel sometimes fails to link when lkdrm is built-in and
compiled with clang:

relocation truncated to fit: R_ARM_THM_CALL against `.bss'

The reason here is that a relocation from .text to .bss fails to
generate a trampoline because .bss is not an executable section.

Marking the function 'noinline' turns the relative branch to .bss
into an absolute branch to the function argument, and that works
fine.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c074abe0
......@@ -335,7 +335,7 @@ static noinline void corrupt_stack(void)
memset((void *)data, 0, 64);
}
static void execute_location(void *dst)
static void noinline execute_location(void *dst)
{
void (*func)(void) = dst;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment