diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2007-11-23 16:22:36 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2007-11-23 16:22:36 +0000 |
commit | bb44bead1012120e08e81ce206612618384481de (patch) | |
tree | 5994c57fa757a48652180ff9077f26fddaae2bc8 /extras/mini-os/arch | |
parent | 8d71c3dfb8f23ff68a03e6640cc4a8c40d25ea99 (diff) | |
download | xen-bb44bead1012120e08e81ce206612618384481de.tar.gz xen-bb44bead1012120e08e81ce206612618384481de.tar.bz2 xen-bb44bead1012120e08e81ce206612618384481de.zip |
[Mini-OS] Fix stack closures
So as to make backtracing tools happy, correctly close x86 stacks for
new threads as well as on callback in the x86_32 case since there is
no unwind marker.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
Diffstat (limited to 'extras/mini-os/arch')
-rw-r--r-- | extras/mini-os/arch/x86/x86_32.S | 3 | ||||
-rw-r--r-- | extras/mini-os/arch/x86/x86_64.S | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/extras/mini-os/arch/x86/x86_32.S b/extras/mini-os/arch/x86/x86_32.S index b6f1be3a01..2d359ab44a 100644 --- a/extras/mini-os/arch/x86/x86_32.S +++ b/extras/mini-os/arch/x86/x86_32.S @@ -126,6 +126,7 @@ ENTRY(hypervisor_callback) cmpl $ecrit,%eax jb critical_region_fixup 11: push %esp + xorl %ebp,%ebp call do_hypervisor_callback add $4,%esp movl HYPERVISOR_shared_info,%esi @@ -281,6 +282,8 @@ ENTRY(spurious_interrupt_bug) ENTRY(thread_starter) popl %eax popl %ebx + pushl $0 + xorl %ebp,%ebp pushl %eax call *%ebx call exit_thread diff --git a/extras/mini-os/arch/x86/x86_64.S b/extras/mini-os/arch/x86/x86_64.S index 1b5e0f7b37..0f85577716 100644 --- a/extras/mini-os/arch/x86/x86_64.S +++ b/extras/mini-os/arch/x86/x86_64.S @@ -380,6 +380,8 @@ ENTRY(page_fault) ENTRY(thread_starter) popq %rdi popq %rbx + pushq $0 + xorq %rbp,%rbp call *%rbx call exit_thread |