Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 boot updates from Ingo Molnar: "Misc cleanups/simplifications by Borislav Petkov, Paul Bolle and Wei Yang" * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/boot/64: Optimize fixmap page fixup x86/boot: Simplify the GDTR calculation assembly code a bit x86/boot/build: Remove always empty $(USERINCLUDE)
This commit is contained in:
Коммит
06cc6b969c
|
@ -65,7 +65,7 @@ clean-files += cpustr.h
|
|||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP
|
||||
KBUILD_CFLAGS := $(REALMODE_CFLAGS) -D_SETUP
|
||||
KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||
GCOV_PROFILE := n
|
||||
UBSAN_SANITIZE := n
|
||||
|
|
|
@ -119,8 +119,7 @@ ENTRY(startup_32)
|
|||
*/
|
||||
|
||||
/* Load new GDT with the 64bit segments using 32bit descriptor */
|
||||
leal gdt(%ebp), %eax
|
||||
movl %eax, gdt+2(%ebp)
|
||||
addl %ebp, gdt+2(%ebp)
|
||||
lgdt gdt(%ebp)
|
||||
|
||||
/* Enable PAE mode */
|
||||
|
|
|
@ -142,6 +142,9 @@ startup_64:
|
|||
decl %ecx
|
||||
jnz 1b
|
||||
|
||||
test %rbp, %rbp
|
||||
jz .Lskip_fixup
|
||||
|
||||
/*
|
||||
* Fixup the kernel text+data virtual addresses. Note that
|
||||
* we might write invalid pmds, when the kernel is relocated
|
||||
|
@ -149,9 +152,9 @@ startup_64:
|
|||
* beyond _end.
|
||||
*/
|
||||
leaq level2_kernel_pgt(%rip), %rdi
|
||||
leaq 4096(%rdi), %r8
|
||||
leaq PAGE_SIZE(%rdi), %r8
|
||||
/* See if it is a valid page table entry */
|
||||
1: testb $1, 0(%rdi)
|
||||
1: testb $_PAGE_PRESENT, 0(%rdi)
|
||||
jz 2f
|
||||
addq %rbp, 0(%rdi)
|
||||
/* Go to the next page */
|
||||
|
@ -162,6 +165,7 @@ startup_64:
|
|||
/* Fixup phys_base */
|
||||
addq %rbp, phys_base(%rip)
|
||||
|
||||
.Lskip_fixup:
|
||||
movq $(early_level4_pgt - __START_KERNEL_map), %rax
|
||||
jmp 1f
|
||||
ENTRY(secondary_startup_64)
|
||||
|
|
Загрузка…
Ссылка в новой задаче