"Nicholas Piggin" <npig...@gmail.com> writes: > On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote: ... >> 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 (engeb...@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