diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-01-30 07:33:02 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:33:02 -0500 |
commit | 88089519f302f1296b4739be45699f06f728ec31 (patch) | |
tree | a0ffb023be68d0b83503e77ba4a9d9b43acea88b /arch/x86/boot/pm.c | |
parent | c4d9ba6da9f050ebb7e0d70769e3dca0fd45334f (diff) |
x86 setup: initialize LDTR and TR to make life easier to Intel VT
Intel VT doesn't like to engage when the protected-mode state isn't
fully initialized. Make life easier for it by initializing LDTR (to
null) and TR (to a dummy hunk of low memory which will never actually
be touched.)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/boot/pm.c')
-rw-r--r-- | arch/x86/boot/pm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/boot/pm.c b/arch/x86/boot/pm.c index 09fb342cc62e..b23cbdc7d547 100644 --- a/arch/x86/boot/pm.c +++ b/arch/x86/boot/pm.c | |||
@@ -121,6 +121,10 @@ static void setup_gdt(void) | |||
121 | [GDT_ENTRY_BOOT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff), | 121 | [GDT_ENTRY_BOOT_CS] = GDT_ENTRY(0xc09b, 0, 0xfffff), |
122 | /* DS: data, read/write, 4 GB, base 0 */ | 122 | /* DS: data, read/write, 4 GB, base 0 */ |
123 | [GDT_ENTRY_BOOT_DS] = GDT_ENTRY(0xc093, 0, 0xfffff), | 123 | [GDT_ENTRY_BOOT_DS] = GDT_ENTRY(0xc093, 0, 0xfffff), |
124 | /* TSS: 32-bit tss, 104 bytes, base 4096 */ | ||
125 | /* We only have a TSS here to keep Intel VT happy; | ||
126 | we don't actually use it for anything. */ | ||
127 | [GDT_ENTRY_BOOT_TSS] = GDT_ENTRY(0x0089, 4096, 103), | ||
124 | }; | 128 | }; |
125 | /* Xen HVM incorrectly stores a pointer to the gdt_ptr, instead | 129 | /* Xen HVM incorrectly stores a pointer to the gdt_ptr, instead |
126 | of the gdt_ptr contents. Thus, make it static so it will | 130 | of the gdt_ptr contents. Thus, make it static so it will |