aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/realmode
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2012-05-08 14:22:35 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2012-05-08 14:48:03 -0400
commit056a43a6d3ab903a798d8ee4435ad67d6fccc3e6 (patch)
treee7af15979dd52981873a676351ed45307bfe4a6e /arch/x86/realmode
parentf7436a9da902922a48cccc208099763b87d6171f (diff)
x86, realmode: Remove indirect jumps in trampoline_64.S
Remove indirect jumps in trampoline_64.S which are no longer necessary: the realmode code can relocate the absolute jumps correctly from the start. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-13-git-send-email-jarkko.sakkinen@intel.com
Diffstat (limited to 'arch/x86/realmode')
-rw-r--r--arch/x86/realmode/rm/trampoline_64.S15
1 files changed, 2 insertions, 13 deletions
diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
index 66c58cf15503..77b72b45d705 100644
--- a/arch/x86/realmode/rm/trampoline_64.S
+++ b/arch/x86/realmode/rm/trampoline_64.S
@@ -73,7 +73,7 @@ ENTRY(trampoline_data)
73 lmsw %ax # into protected mode 73 lmsw %ax # into protected mode
74 74
75 # flush prefetch and jump to startup_32 75 # flush prefetch and jump to startup_32
76 ljmpl *(startup_32_vector) 76 ljmpl $__KERNEL32_CS, $pa_startup_32
77 77
78no_longmode: 78no_longmode:
79 hlt 79 hlt
@@ -113,7 +113,7 @@ ENTRY(startup_32)
113 * EFER.LMA = 1). Now we want to jump in 64bit mode, to do that we use 113 * EFER.LMA = 1). Now we want to jump in 64bit mode, to do that we use
114 * the new gdt/idt that has __KERNEL_CS with CS.L = 1. 114 * the new gdt/idt that has __KERNEL_CS with CS.L = 1.
115 */ 115 */
116 ljmpl *(pa_startup_64_vector) 116 ljmpl $__KERNEL_CS, $pa_startup_64
117 117
118 .section ".text64","ax" 118 .section ".text64","ax"
119 .code64 119 .code64
@@ -144,17 +144,6 @@ tgdt:
144 .quad 0x00cf93000000ffff # __KERNEL_DS 144 .quad 0x00cf93000000ffff # __KERNEL_DS
145tgdt_end: 145tgdt_end:
146 146
147 .balign 4
148startup_32_vector:
149 .long pa_startup_32
150 .word __KERNEL32_CS, 0
151
152 .balign 4
153 .globl startup_64_vector
154startup_64_vector:
155 .long pa_startup_64
156 .word __KERNEL_CS, 0
157
158 .data 147 .data
159 .balign 4 148 .balign 4
160GLOBAL(trampoline_status) 149GLOBAL(trampoline_status)