]> Zhao Yanbai Git Server - minix.git/commitdiff
x86:ensure that getcontext will return 0.
authorKees Jongenburger <kees.jongenburger@gmail.com>
Mon, 24 Mar 2014 15:16:21 +0000 (16:16 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:21 +0000 (17:05 +0200)
The setcontext method did not alway set the return value to 0 after
restoring the desired context. Specially When calling setcontext with
the _UC_IGNSIGM and the _UC_IGNFPU flags the return value would be non
zero.

Change-Id: Iec7f8d6a680950aa53e3c88c86e03f65005e66b2

lib/libc/arch/i386/sys-minix/ucontext.S

index 459d2dcb6bcd42b33cac126cf45e921037681e61..92ec539d69c9b83c643abbc0dece30cc5249f6e1 100644 (file)
@@ -108,6 +108,7 @@ ENTRY(setcontext)
        mov SI(%edx), %esi              /* Restore ESI */
        mov BP(%edx), %ebp              /* Restore EBP */
        mov SP(%edx), %esp              /* Restore stack pointer */
+       xor %eax, %eax                  /* Return 0 */
        jmp *PC(%edx)                   /* Return to RTA */
 
 /* void ctx_start((void *func)(int arg1, ..., argn), arg1, ..., argn,