summaryrefslogtreecommitdiffstats
path: root/libc/arch-mips/syscalls
diff options
context:
space:
mode:
authorChris Dearman <chris.dearman@imgtec.com>2013-11-13 14:15:31 -0800
committerElliott Hughes <enh@google.com>2013-11-14 16:53:15 -0800
commiteffaa7824da1af4db5cef50c78079d4c4e1717a7 (patch)
tree75fd1cad053bece3b7df4c45e26e16a36c2de737 /libc/arch-mips/syscalls
parentae5c3dd73844e6a9e1a14dbf893eab5142902f18 (diff)
downloadbionic-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.S23
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