diff options
| author | Chris Dearman <chris.dearman@imgtec.com> | 2013-11-13 14:15:31 -0800 |
|---|---|---|
| committer | Elliott Hughes <enh@google.com> | 2013-11-14 16:53:15 -0800 |
| commit | effaa7824da1af4db5cef50c78079d4c4e1717a7 (patch) | |
| tree | 75fd1cad053bece3b7df4c45e26e16a36c2de737 /libc/arch-mips/syscalls | |
| parent | ae5c3dd73844e6a9e1a14dbf893eab5142902f18 (diff) | |
| download | bionic-effaa7824da1af4db5cef50c78079d4c4e1717a7.zip bionic-effaa7824da1af4db5cef50c78079d4c4e1717a7.tar.gz bionic-effaa7824da1af4db5cef50c78079d4c4e1717a7.tar.bz2 | |
[MIPS] Reimplement syscall to invoke the system call directly
Some MIPS kernels do not correctly restart interrupted system calls that
have been invoked using the indirect syscall (NR_syscall).
The simplest workaround is to handle the indirection in userland and then
call the required system call directly.
Change-Id: I8385399621529db9a52b463c96925f6decaaca30
Diffstat (limited to 'libc/arch-mips/syscalls')
| -rw-r--r-- | libc/arch-mips/syscalls/syscall.S | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/libc/arch-mips/syscalls/syscall.S b/libc/arch-mips/syscalls/syscall.S deleted file mode 100644 index 2b2b707..0000000 --- a/libc/arch-mips/syscalls/syscall.S +++ /dev/null @@ -1,23 +0,0 @@ -/* Generated by gensyscalls.py. Do not edit. */ - -#include <asm/unistd.h> - .text - .globl syscall - .align 4 - .ent syscall - -syscall: - .set noreorder - .cpload $t9 - li $v0, __NR_syscall - syscall - bnez $a3, 1f - move $a0, $v0 - j $ra - nop -1: - la $t9,__set_errno - j $t9 - nop - .set reorder - .end syscall |
