Message ID | 20190110162435.309262-7-arnd@arndb.de (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | arch: synchronize syscall tables in preparation for y2038 | expand |
On Thu, Jan 10, 2019 at 05:24:26PM +0100, Arnd Bergmann wrote: > The migrate_pages system call has an assigned number on all architectures > except ARM. When it got added initially in commit d80ade7b3231 ("ARM: > Fix warning: #warning syscall migrate_pages not implemented"), it was > intentionally left out based on the observation that there are no 32-bit > ARM NUMA systems. > > However, there are now arm64 NUMA machines that can in theory run 32-bit > kernels (actually enabling NUMA there would require additional work) > as well as 32-bit user space on 64-bit kernels, so that argument is no > longer very strong. > > Assigning the number lets us use the system call on 64-bit kernels as well > as providing a more consistent set of syscalls across architectures. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > arch/arm/include/asm/unistd.h | 1 - > arch/arm/tools/syscall.tbl | 1 + > arch/arm64/include/asm/unistd.h | 2 +- > arch/arm64/include/asm/unistd32.h | 2 ++ > 4 files changed, 4 insertions(+), 2 deletions(-) [...] > diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h > index 04ee190b90fe..355fe2bc035b 100644 > --- a/arch/arm64/include/asm/unistd32.h > +++ b/arch/arm64/include/asm/unistd32.h > @@ -821,6 +821,8 @@ __SYSCALL(__NR_statx, sys_statx) > __SYSCALL(__NR_rseq, sys_rseq) > #define __NR_io_pgetevents 399 > __SYSCALL(__NR_io_pgetevents, compat_sys_io_pgetevents) > +#define __NR_migrate_pages 400 > +__SYSCALL(__NR_migrate_pages, sys_migrate_pages) Should be compat_sys_migrate_pages instead? Will
On Thu, Jan 10, 2019 at 5:32 PM Will Deacon <will.deacon@arm.com> wrote: > > diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h > > index 04ee190b90fe..355fe2bc035b 100644 > > --- a/arch/arm64/include/asm/unistd32.h > > +++ b/arch/arm64/include/asm/unistd32.h > > @@ -821,6 +821,8 @@ __SYSCALL(__NR_statx, sys_statx) > > __SYSCALL(__NR_rseq, sys_rseq) > > #define __NR_io_pgetevents 399 > > __SYSCALL(__NR_io_pgetevents, compat_sys_io_pgetevents) > > +#define __NR_migrate_pages 400 > > +__SYSCALL(__NR_migrate_pages, sys_migrate_pages) > > Should be compat_sys_migrate_pages instead? Yes, good catch! Fixed now. Thanks, Arnd
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index 88ef2ce1f69a..d713587dfcf4 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h @@ -45,7 +45,6 @@ * Unimplemented (or alternatively implemented) syscalls */ #define __IGNORE_fadvise64_64 -#define __IGNORE_migrate_pages #ifdef __ARM_EABI__ /* diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl index 8edf93b4490f..86de9eb34296 100644 --- a/arch/arm/tools/syscall.tbl +++ b/arch/arm/tools/syscall.tbl @@ -414,3 +414,4 @@ 397 common statx sys_statx 398 common rseq sys_rseq 399 common io_pgetevents sys_io_pgetevents +400 common migrate_pages sys_migrate_pages diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index a7b1fc58ffdf..261216c3336e 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -44,7 +44,7 @@ #define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5) #define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800) -#define __NR_compat_syscalls 400 +#define __NR_compat_syscalls 401 #endif #define __ARCH_WANT_SYS_CLONE diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h index 04ee190b90fe..355fe2bc035b 100644 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h @@ -821,6 +821,8 @@ __SYSCALL(__NR_statx, sys_statx) __SYSCALL(__NR_rseq, sys_rseq) #define __NR_io_pgetevents 399 __SYSCALL(__NR_io_pgetevents, compat_sys_io_pgetevents) +#define __NR_migrate_pages 400 +__SYSCALL(__NR_migrate_pages, sys_migrate_pages) /* * Please add new compat syscalls above this comment and update
The migrate_pages system call has an assigned number on all architectures except ARM. When it got added initially in commit d80ade7b3231 ("ARM: Fix warning: #warning syscall migrate_pages not implemented"), it was intentionally left out based on the observation that there are no 32-bit ARM NUMA systems. However, there are now arm64 NUMA machines that can in theory run 32-bit kernels (actually enabling NUMA there would require additional work) as well as 32-bit user space on 64-bit kernels, so that argument is no longer very strong. Assigning the number lets us use the system call on 64-bit kernels as well as providing a more consistent set of syscalls across architectures. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/arm/include/asm/unistd.h | 1 - arch/arm/tools/syscall.tbl | 1 + arch/arm64/include/asm/unistd.h | 2 +- arch/arm64/include/asm/unistd32.h | 2 ++ 4 files changed, 4 insertions(+), 2 deletions(-)