aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/trampoline.S
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-10-25 09:43:42 +0100
committerKeir Fraser <keir@xensource.com>2007-10-25 09:43:42 +0100
commit9fec701806f4a61705e75fcee03d590f58562126 (patch)
treefd84cbb1f35fa24d70748214c09158fd99958a71 /xen/arch/x86/boot/trampoline.S
parent437891b12b76a6f835b0b657d300537c34f21aab (diff)
downloadxen-9fec701806f4a61705e75fcee03d590f58562126.tar.gz
xen-9fec701806f4a61705e75fcee03d590f58562126.tar.bz2
xen-9fec701806f4a61705e75fcee03d590f58562126.zip
x86: GDTR must be reset after using real-mode BIOS services. Some
BIOSes clobber GDTR. While we're here reset IDTR too, although it's not really necessary. Signed-off-by: John Byrne <john.l.byrne@hp.com> Sigend-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/boot/trampoline.S')
-rw-r--r--xen/arch/x86/boot/trampoline.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S
index 95a9d013de..6ffaa811ef 100644
--- a/xen/arch/x86/boot/trampoline.S
+++ b/xen/arch/x86/boot/trampoline.S
@@ -168,6 +168,10 @@ trampoline_boot_cpu_entry:
/* Disable irqs before returning to protected mode. */
cli
+ /* Reset GDT and IDT. Some BIOSes clobber GDTR. */
+ lidt bootsym(idt_48)
+ lgdt bootsym(gdt_48)
+
/* Enter protected mode, and flush insn queue. */
xor %ax,%ax
inc %ax