[Bug 11491] New: _syscall_noerr do not handle syscall values in range [-EMAXERRNO; 0[ on MIPS
bugzilla at busybox.net
bugzilla at busybox.net
Wed Nov 7 02:15:45 UTC 2018
https://bugs.busybox.net/show_bug.cgi?id=11491
Bug ID: 11491
Summary: _syscall_noerr do not handle syscall values in range
[-EMAXERRNO; 0[ on MIPS
Product: uClibc
Version: 0.9.33.2
Hardware: Other
OS: Linux
Status: NEW
Severity: major
Priority: P5
Component: Other
Assignee: unassigned at uclibc.org
Reporter: boyko.cxx at gmail.com
CC: uclibc-cvs at uclibc.org
Target Milestone: ---
On Linux/MIPS (O32 ABI) for system call we have two result registers - v0 and
a3.
v0 contains actual syscall result on success or error number on fail, a3 set to
0/1 for indicating syscall success/fail. (if a3 == 1, v0 contains errno).
Now as we can see from definition of handle_sys
(arch/mips/kernel/scall32-o32.S), handler treats returned by syscall function
(let's call "original") values in range [-EMAXERRNO; 0[ as -errno, a3 is set to
1 and final returned (to userspace) value is (-original).
Currently ulibc does not fully handle this mips syscall convention - wrappers
declared though _syscall_noerr (time, times) are not working properly.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the uClibc-cvs
mailing list