diff options
Diffstat (limited to 'arch/x86/kernel/head_64.S')
-rw-r--r-- | arch/x86/kernel/head_64.S | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index 09b38d539b09..eb415043a929 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S | |||
@@ -107,8 +107,13 @@ startup_64: | |||
107 | movq %rdx, 0(%rbx, %rax, 8) | 107 | movq %rdx, 0(%rbx, %rax, 8) |
108 | ident_complete: | 108 | ident_complete: |
109 | 109 | ||
110 | /* Fixup the kernel text+data virtual addresses | 110 | /* |
111 | * Fixup the kernel text+data virtual addresses. Note that | ||
112 | * we might write invalid pmds, when the kernel is relocated | ||
113 | * cleanup_highmap() fixes this up along with the mappings | ||
114 | * beyond _end. | ||
111 | */ | 115 | */ |
116 | |||
112 | leaq level2_kernel_pgt(%rip), %rdi | 117 | leaq level2_kernel_pgt(%rip), %rdi |
113 | leaq 4096(%rdi), %r8 | 118 | leaq 4096(%rdi), %r8 |
114 | /* See if it is a valid page table entry */ | 119 | /* See if it is a valid page table entry */ |
@@ -250,7 +255,7 @@ ENTRY(secondary_startup_64) | |||
250 | lretq | 255 | lretq |
251 | 256 | ||
252 | /* SMP bootup changes these two */ | 257 | /* SMP bootup changes these two */ |
253 | __CPUINITDATA | 258 | __REFDATA |
254 | .align 8 | 259 | .align 8 |
255 | ENTRY(initial_code) | 260 | ENTRY(initial_code) |
256 | .quad x86_64_start_kernel | 261 | .quad x86_64_start_kernel |