Commit d2a4a071 authored by Arnd Bergmann's avatar Arnd Bergmann

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: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent e632bca0
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
#ifndef _ASM_SECCOMP_H #ifndef _ASM_SECCOMP_H
#define _ASM_SECCOMP_H #define _ASM_SECCOMP_H
#include <asm/unistd.h> #include <asm/unistd_compat_32.h>
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
#define __NR_seccomp_read_32 __NR_compat_read #define __NR_seccomp_read_32 __NR_compat32_read
#define __NR_seccomp_write_32 __NR_compat_write #define __NR_seccomp_write_32 __NR_compat32_write
#define __NR_seccomp_exit_32 __NR_compat_exit #define __NR_seccomp_exit_32 __NR_compat32_exit
#define __NR_seccomp_sigreturn_32 __NR_compat_rt_sigreturn #define __NR_seccomp_sigreturn_32 __NR_compat32_rt_sigreturn
#endif /* CONFIG_COMPAT */ #endif /* CONFIG_COMPAT */
#include <asm-generic/seccomp.h> #include <asm-generic/seccomp.h>
......
...@@ -16,21 +16,6 @@ ...@@ -16,21 +16,6 @@
#define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_FORK
#define __ARCH_WANT_SYS_VFORK #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. * The following SVCs are ARM private.
*/ */
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#include <asm/barrier.h> #include <asm/barrier.h>
#include <asm/unistd.h> #include <asm/unistd_compat_32.h>
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/vdso/compat_barrier.h> #include <asm/vdso/compat_barrier.h>
...@@ -24,7 +24,7 @@ int gettimeofday_fallback(struct __kernel_old_timeval *_tv, ...@@ -24,7 +24,7 @@ int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
register struct timezone *tz asm("r1") = _tz; register struct timezone *tz asm("r1") = _tz;
register struct __kernel_old_timeval *tv asm("r0") = _tv; register struct __kernel_old_timeval *tv asm("r0") = _tv;
register long ret asm ("r0"); register long ret asm ("r0");
register long nr asm("r7") = __NR_compat_gettimeofday; register long nr asm("r7") = __NR_compat32_gettimeofday;
asm volatile( asm volatile(
" swi #0\n" " swi #0\n"
...@@ -41,7 +41,7 @@ long clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts) ...@@ -41,7 +41,7 @@ long clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
register struct __kernel_timespec *ts asm("r1") = _ts; register struct __kernel_timespec *ts asm("r1") = _ts;
register clockid_t clkid asm("r0") = _clkid; register clockid_t clkid asm("r0") = _clkid;
register long ret asm ("r0"); 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( asm volatile(
" swi #0\n" " swi #0\n"
...@@ -58,7 +58,7 @@ long clock_gettime32_fallback(clockid_t _clkid, struct old_timespec32 *_ts) ...@@ -58,7 +58,7 @@ long clock_gettime32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
register struct old_timespec32 *ts asm("r1") = _ts; register struct old_timespec32 *ts asm("r1") = _ts;
register clockid_t clkid asm("r0") = _clkid; register clockid_t clkid asm("r0") = _clkid;
register long ret asm ("r0"); 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( asm volatile(
" swi #0\n" " swi #0\n"
...@@ -75,7 +75,7 @@ int clock_getres_fallback(clockid_t _clkid, struct __kernel_timespec *_ts) ...@@ -75,7 +75,7 @@ int clock_getres_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
register struct __kernel_timespec *ts asm("r1") = _ts; register struct __kernel_timespec *ts asm("r1") = _ts;
register clockid_t clkid asm("r0") = _clkid; register clockid_t clkid asm("r0") = _clkid;
register long ret asm ("r0"); 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( asm volatile(
" swi #0\n" " swi #0\n"
...@@ -92,7 +92,7 @@ int clock_getres32_fallback(clockid_t _clkid, struct old_timespec32 *_ts) ...@@ -92,7 +92,7 @@ int clock_getres32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
register struct old_timespec32 *ts asm("r1") = _ts; register struct old_timespec32 *ts asm("r1") = _ts;
register clockid_t clkid asm("r0") = _clkid; register clockid_t clkid asm("r0") = _clkid;
register long ret asm ("r0"); 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( asm volatile(
" swi #0\n" " swi #0\n"
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <asm/signal32.h> #include <asm/signal32.h>
#include <asm/traps.h> #include <asm/traps.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <asm/unistd.h> #include <asm/unistd_compat_32.h>
#include <asm/vdso.h> #include <asm/vdso.h>
struct compat_vfp_sigframe { struct compat_vfp_sigframe {
...@@ -451,7 +451,7 @@ int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, ...@@ -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) void compat_setup_restart_syscall(struct pt_regs *regs)
{ {
regs->regs[7] = __NR_compat_restart_syscall; regs->regs[7] = __NR_compat32_restart_syscall;
} }
/* /*
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
* need two 16-bit instructions. * need two 16-bit instructions.
*/ */
#include <asm/unistd.h> #include <asm/unistd_compat_32.h>
.section .rodata .section .rodata
.globl __aarch32_sigret_code_start .globl __aarch32_sigret_code_start
...@@ -22,26 +22,26 @@ __aarch32_sigret_code_start: ...@@ -22,26 +22,26 @@ __aarch32_sigret_code_start:
/* /*
* ARM Code * ARM Code
*/ */
.byte __NR_compat_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat_sigreturn .byte __NR_compat32_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat32_sigreturn
.byte __NR_compat_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat_sigreturn .byte __NR_compat32_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat32_sigreturn
/* /*
* Thumb code * Thumb code
*/ */
.byte __NR_compat_sigreturn, 0x27 // svc #__NR_compat_sigreturn .byte __NR_compat32_sigreturn, 0x27 // svc #__NR_compat32_sigreturn
.byte __NR_compat_sigreturn, 0xdf // mov r7, #__NR_compat_sigreturn .byte __NR_compat32_sigreturn, 0xdf // mov r7, #__NR_compat32_sigreturn
/* /*
* ARM code * ARM code
*/ */
.byte __NR_compat_rt_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat_rt_sigreturn .byte __NR_compat32_rt_sigreturn, 0x70, 0xa0, 0xe3 // mov r7, #__NR_compat32_rt_sigreturn
.byte __NR_compat_rt_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat_rt_sigreturn .byte __NR_compat32_rt_sigreturn, 0x00, 0x00, 0xef // svc #__NR_compat32_rt_sigreturn
/* /*
* Thumb code * Thumb code
*/ */
.byte __NR_compat_rt_sigreturn, 0x27 // svc #__NR_compat_rt_sigreturn .byte __NR_compat32_rt_sigreturn, 0x27 // svc #__NR_compat32_rt_sigreturn
.byte __NR_compat_rt_sigreturn, 0xdf // mov r7, #__NR_compat_rt_sigreturn .byte __NR_compat32_rt_sigreturn, 0xdf // mov r7, #__NR_compat32_rt_sigreturn
.globl __aarch32_sigret_code_end .globl __aarch32_sigret_code_end
__aarch32_sigret_code_end: __aarch32_sigret_code_end:
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment