powerpc/vdso: Add missing includes and clean vdso_setup_syscall_map()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Sun, 27 Sep 2020 09:16:19 +0000 (09:16 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 3 Dec 2020 14:01:15 +0000 (01:01 +1100)
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
arch/powerpc/kernel/vdso.c

index 23208a051af5f419555397fe5a362b22c3046a9f..b0332c60910473813cd11621e3e4679123fe7b5f 100644 (file)
 #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();
 
        /*