aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Mirkin <major@openvz.org>2007-10-17 12:04:33 -0400
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>2007-10-17 14:15:29 -0400
commit1c5b5cfd290b6cb7c67020ef420e275f746a7236 (patch)
tree952d52bb9ea667c068e3c809b71911ae6d2bec98
parentaa506dc7b12d03fbf8fd11aab752aed1aadd9c07 (diff)
x86: return correct error code from child_rip in x86_64 entry.S
Right now register edi is just cleared before calling do_exit. That is wrong because correct return value will be ignored. Value from rax should be copied to rdi instead of clearing edi. AK: changed to 32bit move because it's strictly an int [ tglx: arch/x86 adaptation ] Signed-off-by: Andrey Mirkin <major@openvz.org> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/x86/kernel/entry_64.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index f1cacd4897f7..3a058bb16409 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -988,7 +988,7 @@ child_rip:
988 movq %rsi, %rdi 988 movq %rsi, %rdi
989 call *%rax 989 call *%rax
990 # exit 990 # exit
991 xorl %edi, %edi 991 mov %eax, %edi
992 call do_exit 992 call do_exit
993 CFI_ENDPROC 993 CFI_ENDPROC
994ENDPROC(child_rip) 994ENDPROC(child_rip)