x86: GDTR must be reset after using real-mode BIOS services. Some
authorKeir Fraser <keir@xensource.com>
Thu, 25 Oct 2007 08:43:42 +0000 (09:43 +0100)
committerKeir Fraser <keir@xensource.com>
Thu, 25 Oct 2007 08:43:42 +0000 (09:43 +0100)
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>
xen/arch/x86/boot/trampoline.S

index 95a9d013de44b5629ea8b17f035f881fbcdee55d..6ffaa811ef94b0f8421d0bf6372d135234927921 100644 (file)
@@ -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