aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-06-25 07:14:52 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2020-06-25 08:20:46 -0400
commit4108903c9df13e5b25bcfa7be11a9fbc83c94b82 (patch)
treea7be9bdc58543d449bb11c39d79509bd7d259678
parentf8203b59c7b20154ff08e90fca438f8939fca4bf (diff)
downloadkvm-unit-tests-4108903c9df13e5b25bcfa7be11a9fbc83c94b82.tar.gz
x86: fix stack pointer after call
Since setup_multiboot has a C calling convention, the stack pointer must be adjusted after the call. Without this change, the bottom of the percpu area would be 4 bytes below the bottom of the stack and overlap the top 4 bytes of CPU 1's stack. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--x86/cstart.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/x86/cstart.S b/x86/cstart.S
index a3c7931..1714986 100644
--- a/x86/cstart.S
+++ b/x86/cstart.S
@@ -112,6 +112,7 @@ start:
mov $stacktop, %esp
push %ebx
call setup_multiboot
+ addl $4, %esp
call setup_libcflat
mov mb_cmdline(%ebx), %eax
mov %eax, __args