Commit 8d4150ccbb63419649a69fe04b46120a46d60da2

Authored by Will Deacon
Committed by Russell King
1 parent ad82cc08f7

ARM: 7471/1: Revert "7442/1: Revert "remove unused restart trampoline""

This reverts commit 3b0c06226783ffc836217eb34f7eca311b1e63f7.

We no longer require the restart trampoline for syscall restarting.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Showing 3 changed files with 0 additions and 17 deletions Side-by-side Diff

arch/arm/kernel/signal.c
... ... @@ -27,7 +27,6 @@
27 27 */
28 28 #define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE))
29 29 #define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE))
30   -#define SWI_SYS_RESTART (0xef000000|__NR_restart_syscall|__NR_OABI_SYSCALL_BASE)
31 30  
32 31 /*
33 32 * With EABI, the syscall number has to be loaded into r7.
... ... @@ -45,18 +44,6 @@
45 44 const unsigned long sigreturn_codes[7] = {
46 45 MOV_R7_NR_SIGRETURN, SWI_SYS_SIGRETURN, SWI_THUMB_SIGRETURN,
47 46 MOV_R7_NR_RT_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN,
48   -};
49   -
50   -/*
51   - * Either we support OABI only, or we have EABI with the OABI
52   - * compat layer enabled. In the later case we don't know if
53   - * user space is EABI or not, and if not we must not clobber r7.
54   - * Always using the OABI syscall solves that issue and works for
55   - * all those cases.
56   - */
57   -const unsigned long syscall_restart_code[2] = {
58   - SWI_SYS_RESTART, /* swi __NR_restart_syscall */
59   - 0xe49df004, /* ldr pc, [sp], #4 */
60 47 };
61 48  
62 49 /*
arch/arm/kernel/signal.h
... ... @@ -8,8 +8,6 @@
8 8 * published by the Free Software Foundation.
9 9 */
10 10 #define KERN_SIGRETURN_CODE (CONFIG_VECTORS_BASE + 0x00000500)
11   -#define KERN_RESTART_CODE (KERN_SIGRETURN_CODE + sizeof(sigreturn_codes))
12 11  
13 12 extern const unsigned long sigreturn_codes[7];
14   -extern const unsigned long syscall_restart_code[2];
arch/arm/kernel/traps.c
... ... @@ -820,8 +820,6 @@
820 820 */
821 821 memcpy((void *)(vectors + KERN_SIGRETURN_CODE - CONFIG_VECTORS_BASE),
822 822 sigreturn_codes, sizeof(sigreturn_codes));
823   - memcpy((void *)(vectors + KERN_RESTART_CODE - CONFIG_VECTORS_BASE),
824   - syscall_restart_code, sizeof(syscall_restart_code));
825 823  
826 824 flush_icache_range(vectors, vectors + PAGE_SIZE);
827 825 modify_domain(DOMAIN_USER, DOMAIN_CLIENT);