mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 09:14:19 +08:00
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>
This commit is contained in:
parent
5eacadb5e6
commit
8ed3a5426b
@ -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. */
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user