From 74d93b352638f7c0972b5ec54d1c00e1bd09501c Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 11 Mar 2008 21:29:44 +0000 Subject: [PATCH] With syscall kernel tracing enabled, the syscall return value (%eax, %edx) was trashed before passing it to the user debugger. strace shows the correct return values again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24364 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/arch/x86/arch_interrupts.S | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/arch/x86/arch_interrupts.S b/src/system/kernel/arch/x86/arch_interrupts.S index ee92049660..185e4e0431 100644 --- a/src/system/kernel/arch/x86/arch_interrupts.S +++ b/src/system/kernel/arch/x86/arch_interrupts.S @@ -400,7 +400,9 @@ handle_syscall: jz 1f pushl -4(%ebp) // syscall start time pushl -8(%ebp) - push %edx // syscall return value + movl IFRAME_edx(%ebp), %edx // syscall return value + movl IFRAME_eax(%ebp), %eax + push %edx push %eax lea 16(%esp), %eax // syscall parameters push %eax