Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

arm64: rework compat syscall macros

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>

+22 -37
+5 -5
arch/arm64/include/asm/seccomp.h
··· 8 8 #ifndef _ASM_SECCOMP_H 9 9 #define _ASM_SECCOMP_H 10 10 11 - #include <asm/unistd.h> 11 + #include <asm/unistd_compat_32.h> 12 12 13 13 #ifdef CONFIG_COMPAT 14 - #define __NR_seccomp_read_32 __NR_compat_read 15 - #define __NR_seccomp_write_32 __NR_compat_write 16 - #define __NR_seccomp_exit_32 __NR_compat_exit 17 - #define __NR_seccomp_sigreturn_32 __NR_compat_rt_sigreturn 14 + #define __NR_seccomp_read_32 __NR_compat32_read 15 + #define __NR_seccomp_write_32 __NR_compat32_write 16 + #define __NR_seccomp_exit_32 __NR_compat32_exit 17 + #define __NR_seccomp_sigreturn_32 __NR_compat32_rt_sigreturn 18 18 #endif /* CONFIG_COMPAT */ 19 19 20 20 #include <asm-generic/seccomp.h>
-15
arch/arm64/include/asm/unistd.h
··· 17 17 #define __ARCH_WANT_SYS_VFORK 18 18 19 19 /* 20 - * Compat syscall numbers used by the AArch64 kernel. 21 - */ 22 - #define __NR_compat_restart_syscall 0 23 - #define __NR_compat_exit 1 24 - #define __NR_compat_read 3 25 - #define __NR_compat_write 4 26 - #define __NR_compat_gettimeofday 78 27 - #define __NR_compat_sigreturn 119 28 - #define __NR_compat_rt_sigreturn 173 29 - #define __NR_compat_clock_gettime 263 30 - #define __NR_compat_clock_getres 264 31 - #define __NR_compat_clock_gettime64 403 32 - #define __NR_compat_clock_getres_time64 406 33 - 34 - /* 35 20 * The following SVCs are ARM private. 36 21 */ 37 22 #define __ARM_NR_COMPAT_BASE 0x0f0000
+6 -6
arch/arm64/include/asm/vdso/compat_gettimeofday.h
··· 8 8 #ifndef __ASSEMBLY__ 9 9 10 10 #include <asm/barrier.h> 11 - #include <asm/unistd.h> 11 + #include <asm/unistd_compat_32.h> 12 12 #include <asm/errno.h> 13 13 14 14 #include <asm/vdso/compat_barrier.h> ··· 24 24 register struct timezone *tz asm("r1") = _tz; 25 25 register struct __kernel_old_timeval *tv asm("r0") = _tv; 26 26 register long ret asm ("r0"); 27 - register long nr asm("r7") = __NR_compat_gettimeofday; 27 + register long nr asm("r7") = __NR_compat32_gettimeofday; 28 28 29 29 asm volatile( 30 30 " swi #0\n" ··· 41 41 register struct __kernel_timespec *ts asm("r1") = _ts; 42 42 register clockid_t clkid asm("r0") = _clkid; 43 43 register long ret asm ("r0"); 44 - register long nr asm("r7") = __NR_compat_clock_gettime64; 44 + register long nr asm("r7") = __NR_compat32_clock_gettime64; 45 45 46 46 asm volatile( 47 47 " swi #0\n" ··· 58 58 register struct old_timespec32 *ts asm("r1") = _ts; 59 59 register clockid_t clkid asm("r0") = _clkid; 60 60 register long ret asm ("r0"); 61 - register long nr asm("r7") = __NR_compat_clock_gettime; 61 + register long nr asm("r7") = __NR_compat32_clock_gettime; 62 62 63 63 asm volatile( 64 64 " swi #0\n" ··· 75 75 register struct __kernel_timespec *ts asm("r1") = _ts; 76 76 register clockid_t clkid asm("r0") = _clkid; 77 77 register long ret asm ("r0"); 78 - register long nr asm("r7") = __NR_compat_clock_getres_time64; 78 + register long nr asm("r7") = __NR_compat32_clock_getres_time64; 79 79 80 80 asm volatile( 81 81 " swi #0\n" ··· 92 92 register struct old_timespec32 *ts asm("r1") = _ts; 93 93 register clockid_t clkid asm("r0") = _clkid; 94 94 register long ret asm ("r0"); 95 - register long nr asm("r7") = __NR_compat_clock_getres; 95 + register long nr asm("r7") = __NR_compat32_clock_getres; 96 96 97 97 asm volatile( 98 98 " swi #0\n"
+2 -2
arch/arm64/kernel/signal32.c
··· 17 17 #include <asm/signal32.h> 18 18 #include <asm/traps.h> 19 19 #include <linux/uaccess.h> 20 - #include <asm/unistd.h> 20 + #include <asm/unistd_compat_32.h> 21 21 #include <asm/vdso.h> 22 22 23 23 struct compat_vfp_sigframe { ··· 451 451 452 452 void compat_setup_restart_syscall(struct pt_regs *regs) 453 453 { 454 - regs->regs[7] = __NR_compat_restart_syscall; 454 + regs->regs[7] = __NR_compat32_restart_syscall; 455 455 } 456 456 457 457 /*
+9 -9
arch/arm64/kernel/sigreturn32.S
··· 13 13 * need two 16-bit instructions. 14 14 */ 15 15 16 - #include <asm/unistd.h> 16 + #include <asm/unistd_compat_32.h> 17 17 18 18 .section .rodata 19 19 .globl __aarch32_sigret_code_start ··· 22 22 /* 23 23 * ARM Code 24 24 */ 25 - .byte __NR_compat_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat_sigreturn 26 - .byte __NR_compat_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat_sigreturn 25 + .byte __NR_compat32_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat32_sigreturn 26 + .byte __NR_compat32_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat32_sigreturn 27 27 28 28 /* 29 29 * Thumb code 30 30 */ 31 - .byte __NR_compat_sigreturn, 0x27 // svc #__NR_compat_sigreturn 32 - .byte __NR_compat_sigreturn, 0xdf // mov r7, #__NR_compat_sigreturn 31 + .byte __NR_compat32_sigreturn, 0x27 // svc #__NR_compat32_sigreturn 32 + .byte __NR_compat32_sigreturn, 0xdf // mov r7, #__NR_compat32_sigreturn 33 33 34 34 /* 35 35 * ARM code 36 36 */ 37 - .byte __NR_compat_rt_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat_rt_sigreturn 38 - .byte __NR_compat_rt_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat_rt_sigreturn 37 + .byte __NR_compat32_rt_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat32_rt_sigreturn 38 + .byte __NR_compat32_rt_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat32_rt_sigreturn 39 39 40 40 /* 41 41 * Thumb code 42 42 */ 43 - .byte __NR_compat_rt_sigreturn, 0x27 // svc #__NR_compat_rt_sigreturn 44 - .byte __NR_compat_rt_sigreturn, 0xdf // mov r7, #__NR_compat_rt_sigreturn 43 + .byte __NR_compat32_rt_sigreturn, 0x27 // svc #__NR_compat32_rt_sigreturn 44 + .byte __NR_compat32_rt_sigreturn, 0xdf // mov r7, #__NR_compat32_rt_sigreturn 45 45 46 46 .globl __aarch32_sigret_code_end 47 47 __aarch32_sigret_code_end: