[prev in list] [next in list] [prev in thread] [next in thread] 

List:       uclibc-cvs
Subject:    [Bug 11491] New: _syscall_noerr do not handle syscall values in range [-EMAXERRNO; 0[ on MIPS
From:       bugzilla () busybox ! net
Date:       2018-11-07 2:15:45
Message-ID: bug-11491-159 () https ! bugs ! busybox ! net/
[Download RAW message or body]

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@uclibc.org
          Reporter: boyko.cxx@gmail.com
                CC: uclibc-cvs@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.
_______________________________________________
uClibc-cvs mailing list
uClibc-cvs@uclibc.org
http://lists.busybox.net/mailman/listinfo/uclibc-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic