summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/cpu/i386/call64.S14
1 files changed, 2 insertions, 12 deletions
diff --git a/arch/x86/cpu/i386/call64.S b/arch/x86/cpu/i386/call64.S
index f979f9e5f0e..c722acbd310 100644
--- a/arch/x86/cpu/i386/call64.S
+++ b/arch/x86/cpu/i386/call64.S
@@ -7,6 +7,7 @@
*/
#include <asm/msr-index.h>
+#include <asm/processor.h>
#include <asm/processor-flags.h>
.code32
@@ -30,11 +31,6 @@ cpu_call64:
andl $~X86_CR0_PG, %eax
movl %eax, %cr0
- /* Load new GDT with the 64bit segments using 32bit descriptor */
- leal gdt, %eax
- movl %eax, gdt+2
- lgdt gdt
-
/* Enable PAE mode */
movl $(X86_CR4_PAE), %eax
movl %eax, %cr4
@@ -49,12 +45,6 @@ cpu_call64:
btsl $_EFER_LME, %eax
wrmsr
- /* After gdt is loaded */
- xorl %eax, %eax
- lldt %ax
- movl $0x20, %eax
- ltr %ax
-
/*
* Setup for the jump to 64bit mode
*
@@ -67,7 +57,7 @@ cpu_call64:
*/
pop %esi /* setup_base */
- pushl $0x10
+ pushl $(X86_GDT_ENTRY_64BIT_CS * X86_GDT_ENTRY_SIZE)
leal lret_target, %eax
pushl %eax