]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/boot/pm.c
x86: unify and correct the GDT_ENTRY() macro
[linux-2.6-omap-h63xx.git] / arch / x86 / boot / pm.c
index 09fb342cc62e1965a4edf12fa73e19589d6b7ab0..85a1cd8a8ff8a4daee99ee11d86176bd7a97c166 100644 (file)
@@ -9,8 +9,6 @@
  * ----------------------------------------------------------------------- */
 
 /*
- * arch/i386/boot/pm.c
- *
  * Prepare the machine for transition to protected mode.
  */
 
@@ -100,12 +98,6 @@ static void reset_coprocessor(void)
 /*
  * Set up the GDT
  */
-#define GDT_ENTRY(flags,base,limit)            \
-       (((u64)(base & 0xff000000) << 32) |     \
-        ((u64)flags << 40) |                   \
-        ((u64)(limit & 0x00ff0000) << 32) |    \
-        ((u64)(base & 0x00ffff00) << 16) |     \
-        ((u64)(limit & 0x0000ffff)))
 
 struct gdt_ptr {
        u16 len;
@@ -121,6 +113,10 @@ static void setup_gdt(void)
                [GDT_ENTRY_BOOT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff),
                /* DS: data, read/write, 4 GB, base 0 */
                [GDT_ENTRY_BOOT_DS] = GDT_ENTRY(0xc093, 0, 0xfffff),
+               /* TSS: 32-bit tss, 104 bytes, base 4096 */
+               /* We only have a TSS here to keep Intel VT happy;
+                  we don't actually use it for anything. */
+               [GDT_ENTRY_BOOT_TSS] = GDT_ENTRY(0x0089, 4096, 103),
        };
        /* Xen HVM incorrectly stores a pointer to the gdt_ptr, instead
           of the gdt_ptr contents.  Thus, make it static so it will