Skip to content

Commit d2a4a07

Browse files
committed
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 <[email protected]> Signed-off-by: Arnd Bergmann <[email protected]>
1 parent e632bca commit d2a4a07

File tree

5 files changed

+22
-37
lines changed

5 files changed

+22
-37
lines changed

arch/arm64/include/asm/seccomp.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
#ifndef _ASM_SECCOMP_H
99
#define _ASM_SECCOMP_H
1010

11-
#include <asm/unistd.h>
11+
#include <asm/unistd_compat_32.h>
1212

1313
#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
1818
#endif /* CONFIG_COMPAT */
1919

2020
#include <asm-generic/seccomp.h>

arch/arm64/include/asm/unistd.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,6 @@
1616
#define __ARCH_WANT_SYS_FORK
1717
#define __ARCH_WANT_SYS_VFORK
1818

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-
3419
/*
3520
* The following SVCs are ARM private.
3621
*/

arch/arm64/include/asm/vdso/compat_gettimeofday.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#ifndef __ASSEMBLY__
99

1010
#include <asm/barrier.h>
11-
#include <asm/unistd.h>
11+
#include <asm/unistd_compat_32.h>
1212
#include <asm/errno.h>
1313

1414
#include <asm/vdso/compat_barrier.h>
@@ -24,7 +24,7 @@ int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
2424
register struct timezone *tz asm("r1") = _tz;
2525
register struct __kernel_old_timeval *tv asm("r0") = _tv;
2626
register long ret asm ("r0");
27-
register long nr asm("r7") = __NR_compat_gettimeofday;
27+
register long nr asm("r7") = __NR_compat32_gettimeofday;
2828

2929
asm volatile(
3030
" swi #0\n"
@@ -41,7 +41,7 @@ long clock_gettime_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
4141
register struct __kernel_timespec *ts asm("r1") = _ts;
4242
register clockid_t clkid asm("r0") = _clkid;
4343
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;
4545

4646
asm volatile(
4747
" swi #0\n"
@@ -58,7 +58,7 @@ long clock_gettime32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
5858
register struct old_timespec32 *ts asm("r1") = _ts;
5959
register clockid_t clkid asm("r0") = _clkid;
6060
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;
6262

6363
asm volatile(
6464
" swi #0\n"
@@ -75,7 +75,7 @@ int clock_getres_fallback(clockid_t _clkid, struct __kernel_timespec *_ts)
7575
register struct __kernel_timespec *ts asm("r1") = _ts;
7676
register clockid_t clkid asm("r0") = _clkid;
7777
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;
7979

8080
asm volatile(
8181
" swi #0\n"
@@ -92,7 +92,7 @@ int clock_getres32_fallback(clockid_t _clkid, struct old_timespec32 *_ts)
9292
register struct old_timespec32 *ts asm("r1") = _ts;
9393
register clockid_t clkid asm("r0") = _clkid;
9494
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;
9696

9797
asm volatile(
9898
" swi #0\n"

arch/arm64/kernel/signal32.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include <asm/signal32.h>
1818
#include <asm/traps.h>
1919
#include <linux/uaccess.h>
20-
#include <asm/unistd.h>
20+
#include <asm/unistd_compat_32.h>
2121
#include <asm/vdso.h>
2222

2323
struct compat_vfp_sigframe {
@@ -451,7 +451,7 @@ int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set,
451451

452452
void compat_setup_restart_syscall(struct pt_regs *regs)
453453
{
454-
regs->regs[7] = __NR_compat_restart_syscall;
454+
regs->regs[7] = __NR_compat32_restart_syscall;
455455
}
456456

457457
/*

arch/arm64/kernel/sigreturn32.S

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* need two 16-bit instructions.
1414
*/
1515

16-
#include <asm/unistd.h>
16+
#include <asm/unistd_compat_32.h>
1717

1818
.section .rodata
1919
.globl __aarch32_sigret_code_start
@@ -22,26 +22,26 @@ __aarch32_sigret_code_start:
2222
/*
2323
* ARM Code
2424
*/
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
2727

2828
/*
2929
* Thumb code
3030
*/
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
3333

3434
/*
3535
* ARM code
3636
*/
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
3939

4040
/*
4141
* Thumb code
4242
*/
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
4545

4646
.globl __aarch32_sigret_code_end
4747
__aarch32_sigret_code_end:

0 commit comments

Comments
 (0)