Re: [PATCH v4 09/20] powerpc: Enable compile-time check for syscall handlers
flat view
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2022-09-13 02:30:20
"Nicholas Piggin" [off-list ref] writes:
On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
...
quoted
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.c similarity index 59% rename from arch/powerpc/kernel/systbl.S rename to arch/powerpc/kernel/systbl.c index cb3358886203..99ffdfef6b9c 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.c@@ -10,31 +10,32 @@ * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) */ -#include <asm/ppc_asm.h> +#include <linux/syscalls.h> +#include <linux/compat.h> +#include <asm/unistd.h> +#include <asm/syscalls.h> -.section .rodata,"a" +#define __SYSCALL_WITH_COMPAT(nr, entry, compat) __SYSCALL(nr, entry) -#ifdef CONFIG_PPC64 - .p2align 3 -#define __SYSCALL(nr, entry) .8byte entry +#ifdef CONFIG_ARCH_HAS_SYSCALL_WRAPPER +#define __SYSCALL(nr, entry) [nr] = __powerpc_##entry, +#define __powerpc_sys_ni_syscall sys_ni_syscall #else -#define __SYSCALL(nr, entry) .long entry +#define __SYSCALL(nr, entry) [nr] = entry, #endif -#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) -.globl sys_call_table -sys_call_table: +void *sys_call_table[] = {Humour me, the asm version had this in rodata, does this change that or does it somehow get put back in there? Should this be const?
Even with const I still see it not landing in rodata for some reason. $ grep -e start_rodata -e end_rodata -e sys_call_table .build/System.map c000000000f90000 D __start_rodata c0000000012b0000 R __end_rodata c0000000027d51b0 D sys_call_table vs before the series: c000000000f80000 D __start_rodata c000000000f805f0 D sys_call_table c0000000012a0000 R __end_rodata cheers