summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2018-11-15 18:17:41 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2018-12-03 01:39:22 -0800
commit8ed3a5426b4245ae22e01f8a65573b8fd5854004 (patch)
tree3e8126f3263d5313eb9975ce70ed7a102f91f5e4
parent5eacadb5e66b2b100695777ee7d68d8a2d9bd25c (diff)
downloadlinux-stable-8ed3a5426b4245ae22e01f8a65573b8fd5854004.tar.gz
linux-stable-8ed3a5426b4245ae22e01f8a65573b8fd5854004.tar.bz2
linux-stable-8ed3a5426b4245ae22e01f8a65573b8fd5854004.zip
xtensa: drop fast_syscall_kernel
There must be no xtensa-specific syscalls from the kernel code: register spilling uses call+entry sequence and atomics have proper function implementations. Drop fast_syscall_xtensa. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r--arch/xtensa/kernel/entry.S19
-rw-r--r--arch/xtensa/kernel/traps.c2
2 files changed, 0 insertions, 21 deletions
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index b0007567e497..48d36b4d27b8 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -1022,25 +1022,6 @@ ENDPROC(fast_alloca)
* excsave_1: dispatch table
*/
-ENTRY(fast_syscall_kernel)
-
- /* Skip syscall. */
-
- rsr a0, epc1
- addi a0, a0, 3
- wsr a0, epc1
-
- l32i a0, a2, PT_DEPC
- bgeui a0, VALID_DOUBLE_EXCEPTION_ADDRESS, fast_syscall_unrecoverable
-
- rsr a0, depc # get syscall-nr
- _beqz a0, fast_syscall_spill_registers
- _beqi a0, __NR_xtensa, fast_syscall_xtensa
-
- j kernel_exception
-
-ENDPROC(fast_syscall_kernel)
-
ENTRY(fast_syscall_user)
/* Skip syscall. */
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index 86507fa7c2d7..238399e22cdc 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -51,7 +51,6 @@
extern void kernel_exception(void);
extern void user_exception(void);
-extern void fast_syscall_kernel(void);
extern void fast_syscall_user(void);
extern void fast_alloca(void);
extern void fast_unaligned(void);
@@ -89,7 +88,6 @@ typedef struct {
static dispatch_init_table_t __initdata dispatch_init_table[] = {
{ EXCCAUSE_ILLEGAL_INSTRUCTION, 0, do_illegal_instruction},
-{ EXCCAUSE_SYSTEM_CALL, KRNL, fast_syscall_kernel },
{ EXCCAUSE_SYSTEM_CALL, USER, fast_syscall_user },
{ EXCCAUSE_SYSTEM_CALL, 0, system_call },
/* EXCCAUSE_INSTRUCTION_FETCH unhandled */