]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: rework compat syscall macros
authorArnd Bergmann <arnd@arndb.de>
Wed, 8 May 2024 21:50:07 +0000 (23:50 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 10 Jul 2024 12:23:38 +0000 (14:23 +0200)
The generated asm/unistd_compat_32.h header file now contains
macros that can be used directly in the vdso and the signal
trampolines, so remove the duplicate definitions.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm64/include/asm/seccomp.h
arch/arm64/include/asm/unistd.h
arch/arm64/include/asm/vdso/compat_gettimeofday.h
arch/arm64/kernel/signal32.c
arch/arm64/kernel/sigreturn32.S

index c83ca2c8b936e0bc3e58e1e2d8e601d734d00389..b8397555531445cb1456a1ceb67b1618fa3e4e5b 100644 (file)
@@ -8,13 +8,13 @@
 #ifndef _ASM_SECCOMP_H
 #define _ASM_SECCOMP_H
 
-#include <asm/unistd.h>
+#include <asm/unistd_compat_32.h>
 
 #ifdef CONFIG_COMPAT
-#define __NR_seccomp_read_32           __NR_compat_read
-#define __NR_seccomp_write_32          __NR_compat_write
-#define __NR_seccomp_exit_32           __NR_compat_exit
-#define __NR_seccomp_sigreturn_32      __NR_compat_rt_sigreturn
+#define __NR_seccomp_read_32           __NR_compat32_read
+#define __NR_seccomp_write_32          __NR_compat32_write
+#define __NR_seccomp_exit_32           __NR_compat32_exit
+#define __NR_seccomp_sigreturn_32      __NR_compat32_rt_sigreturn
 #endif /* CONFIG_COMPAT */
 
 #include <asm-generic/seccomp.h>
index fdd16052f9bc1207d4d1416f4576f884f822aa2d..80618c9bbcd8e11805ff9fddc1b12fb2df639763 100644 (file)
 #define __ARCH_WANT_SYS_FORK
 #define __ARCH_WANT_SYS_VFORK
 
-/*
- * Compat syscall numbers used by the AArch64 kernel.
- */
-#define __NR_compat_restart_syscall    0
-#define __NR_compat_exit               1
-#define __NR_compat_read               3
-#define __NR_compat_write              4
-#define __NR_compat_gettimeofday       78
-#define __NR_compat_sigreturn          119
-#define __NR_compat_rt_sigreturn       173
-#define __NR_compat_clock_gettime      263
-#define __NR_compat_clock_getres       264
-#define __NR_compat_clock_gettime64    403
-#define __NR_compat_clock_getres_time64        406
-
 /*
  * The following SVCs are ARM private.
  */
index ecb6fd4c3c647cb6a7029b08112d2ae42e8b3f95..778c1202bbbf9f5db6bfced62a833d50e1675b08 100644 (file)
@@ -8,7 +8,7 @@
 #ifndef __ASSEMBLY__
 
 #include <asm/barrier.h>
-#include <asm/unistd.h>
+#include <asm/unistd_compat_32.h>
 #include <asm/errno.h>
 
 #include <asm/vdso/compat_barrier.h>
@@ -24,7 +24,7 @@ int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
        register struct timezone *tz asm("r1") = _tz;
        register struct __kernel_old_timeval *tv asm("r0") = _tv;
        register long ret asm ("r0");
-       register long nr asm("r7") = __NR_compat_gettimeofday;
+       register long nr asm("r7") = __NR_compat32_gettimeofday;
 
        asm volatile(
        "       swi #0\n"
@@ -41,7 +41,7 @@ long clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
        register struct __kernel_timespec *ts asm("r1") = _ts;
        register clockid_t clkid asm("r0") = _clkid;
        register long ret asm ("r0");
-       register long nr asm("r7") = __NR_compat_clock_gettime64;
+       register long nr asm("r7") = __NR_compat32_clock_gettime64;
 
        asm volatile(
        "       swi #0\n"
@@ -58,7 +58,7 @@ long clock_gettime32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
        register struct old_timespec32 *ts asm("r1") = _ts;
        register clockid_t clkid asm("r0") = _clkid;
        register long ret asm ("r0");
-       register long nr asm("r7") = __NR_compat_clock_gettime;
+       register long nr asm("r7") = __NR_compat32_clock_gettime;
 
        asm volatile(
        "       swi #0\n"
@@ -75,7 +75,7 @@ int clock_getres_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
        register struct __kernel_timespec *ts asm("r1") = _ts;
        register clockid_t clkid asm("r0") = _clkid;
        register long ret asm ("r0");
-       register long nr asm("r7") = __NR_compat_clock_getres_time64;
+       register long nr asm("r7") = __NR_compat32_clock_getres_time64;
 
        asm volatile(
        "       swi #0\n"
@@ -92,7 +92,7 @@ int clock_getres32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
        register struct old_timespec32 *ts asm("r1") = _ts;
        register clockid_t clkid asm("r0") = _clkid;
        register long ret asm ("r0");
-       register long nr asm("r7") = __NR_compat_clock_getres;
+       register long nr asm("r7") = __NR_compat32_clock_getres;
 
        asm volatile(
        "       swi #0\n"
index bbd542704730aa1519c96e0ed5c5b6213a729ee2..81e798b6dadaf502c80df87e6eb6fb3a0f0030d6 100644 (file)
@@ -17,7 +17,7 @@
 #include <asm/signal32.h>
 #include <asm/traps.h>
 #include <linux/uaccess.h>
-#include <asm/unistd.h>
+#include <asm/unistd_compat_32.h>
 #include <asm/vdso.h>
 
 struct compat_vfp_sigframe {
@@ -451,7 +451,7 @@ int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set,
 
 void compat_setup_restart_syscall(struct pt_regs *regs)
 {
-       regs->regs[7] = __NR_compat_restart_syscall;
+       regs->regs[7] = __NR_compat32_restart_syscall;
 }
 
 /*
index ccbd4aab4ba44117984c86bfc802409aca2090f6..6f486b95b413035077f242f9e91358f7f7e9df23 100644 (file)
@@ -13,7 +13,7 @@
  * need two 16-bit instructions.
  */
 
-#include <asm/unistd.h>
+#include <asm/unistd_compat_32.h>
 
        .section .rodata
        .globl __aarch32_sigret_code_start
@@ -22,26 +22,26 @@ __aarch32_sigret_code_start:
        /*
         * ARM Code
         */
-       .byte   __NR_compat_sigreturn, 0x70, 0xa0, 0xe3         // mov  r7, #__NR_compat_sigreturn
-       .byte   __NR_compat_sigreturn, 0x00, 0x00, 0xef         // svc  #__NR_compat_sigreturn
+       .byte   __NR_compat32_sigreturn, 0x70, 0xa0, 0xe3       // mov  r7, #__NR_compat32_sigreturn
+       .byte   __NR_compat32_sigreturn, 0x00, 0x00, 0xef       // svc  #__NR_compat32_sigreturn
 
        /*
         * Thumb code
         */
-       .byte   __NR_compat_sigreturn, 0x27                     // svc  #__NR_compat_sigreturn
-       .byte   __NR_compat_sigreturn, 0xdf                     // mov  r7, #__NR_compat_sigreturn
+       .byte   __NR_compat32_sigreturn, 0x27                   // svc  #__NR_compat32_sigreturn
+       .byte   __NR_compat32_sigreturn, 0xdf                   // mov  r7, #__NR_compat32_sigreturn
 
        /*
         * ARM code
         */
-       .byte   __NR_compat_rt_sigreturn, 0x70, 0xa0, 0xe3      // mov  r7, #__NR_compat_rt_sigreturn
-       .byte   __NR_compat_rt_sigreturn, 0x00, 0x00, 0xef      // svc  #__NR_compat_rt_sigreturn
+       .byte   __NR_compat32_rt_sigreturn, 0x70, 0xa0, 0xe3    // mov  r7, #__NR_compat32_rt_sigreturn
+       .byte   __NR_compat32_rt_sigreturn, 0x00, 0x00, 0xef    // svc  #__NR_compat32_rt_sigreturn
 
        /*
         * Thumb code
         */
-       .byte   __NR_compat_rt_sigreturn, 0x27                  // svc  #__NR_compat_rt_sigreturn
-       .byte   __NR_compat_rt_sigreturn, 0xdf                  // mov  r7, #__NR_compat_rt_sigreturn
+       .byte   __NR_compat32_rt_sigreturn, 0x27                // svc  #__NR_compat32_rt_sigreturn
+       .byte   __NR_compat32_rt_sigreturn, 0xdf                // mov  r7, #__NR_compat32_rt_sigreturn
 
         .globl __aarch32_sigret_code_end
 __aarch32_sigret_code_end: