diff options
author | Christophe Leroy <christophe.leroy@csgroup.eu> | 2020-09-27 09:16:19 +0000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2020-12-04 01:01:15 +1100 |
commit | bc9d5bfc4d23fb3580e7da360f2c9bd878dda9b2 (patch) | |
tree | 4d2df97ed9f7bd8d9e58a75e23ef99679deed22f | |
parent | 7fe2de246e21f01212a8923fbabb4ac84c944d4a (diff) | |
download | linux-stable-bc9d5bfc4d23fb3580e7da360f2c9bd878dda9b2.tar.gz linux-stable-bc9d5bfc4d23fb3580e7da360f2c9bd878dda9b2.tar.bz2 linux-stable-bc9d5bfc4d23fb3580e7da360f2c9bd878dda9b2.zip |
powerpc/vdso: Add missing includes and clean vdso_setup_syscall_map()
Instead of including extern references locally in
vdso_setup_syscall_map(), add the missing headers.
sys_ni_syscall() being a function, cast its address to
an unsigned long instead of declaring it as a fake
unsigned long object.
At the same time, remove a comment which paraphrases the
function name.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b4afedce748ed2858299ceab5ae29b52109263ef.1601197618.git.christophe.leroy@csgroup.eu
-rw-r--r-- | arch/powerpc/kernel/vdso.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index 23208a051af5..b0332c609104 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c @@ -17,8 +17,10 @@ #include <linux/elf.h> #include <linux/security.h> #include <linux/memblock.h> +#include <linux/syscalls.h> #include <vdso/datapage.h> +#include <asm/syscall.h> #include <asm/processor.h> #include <asm/mmu.h> #include <asm/mmu_context.h> @@ -639,24 +641,18 @@ static __init int vdso_setup(void) static void __init vdso_setup_syscall_map(void) { unsigned int i; - extern unsigned long *sys_call_table; -#ifdef CONFIG_PPC64 - extern unsigned long *compat_sys_call_table; -#endif - extern unsigned long sys_ni_syscall; - for (i = 0; i < NR_syscalls; i++) { #ifdef CONFIG_PPC64 - if (sys_call_table[i] != sys_ni_syscall) + if (sys_call_table[i] != (unsigned long)&sys_ni_syscall) vdso_data->syscall_map_64[i >> 5] |= 0x80000000UL >> (i & 0x1f); if (IS_ENABLED(CONFIG_COMPAT) && - compat_sys_call_table[i] != sys_ni_syscall) + compat_sys_call_table[i] != (unsigned long)&sys_ni_syscall) vdso_data->syscall_map_32[i >> 5] |= 0x80000000UL >> (i & 0x1f); #else /* CONFIG_PPC64 */ - if (sys_call_table[i] != sys_ni_syscall) + if (sys_call_table[i] != (unsigned long)&sys_ni_syscall) vdso_data->syscall_map_32[i >> 5] |= 0x80000000UL >> (i & 0x1f); #endif /* CONFIG_PPC64 */ @@ -738,9 +734,6 @@ static int __init vdso_init(void) #endif - /* - * Setup the syscall map in the vDOS - */ vdso_setup_syscall_map(); /* |