diff options
author | Wei Yang <richard.weiyang@gmail.com> | 2016-11-01 15:49:24 +0000 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-11-07 08:33:59 +0100 |
commit | 064025f7ea1ebcd9bbb99cfa9492a803e8b01d36 (patch) | |
tree | 9b23d4de731ef193e5231fd03f715b33d9006f5f /arch/x86/boot | |
parent | 0acba3f91823a5e53a54af5dc31fc774b0e64e99 (diff) | |
download | linux-064025f7ea1ebcd9bbb99cfa9492a803e8b01d36.tar.gz linux-064025f7ea1ebcd9bbb99cfa9492a803e8b01d36.tar.bz2 linux-064025f7ea1ebcd9bbb99cfa9492a803e8b01d36.zip |
x86/boot: Simplify the GDTR calculation assembly code a bit
This patch calculates the GDTR's base address via a single instruction.
( EBP contains the address where it is loaded and GDTR's base address is
already set to "gdt" in compilation. It is fine to get the correct base
address by adding the delta to GDTR's base address. )
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1478015364-5547-1-git-send-email-richard.weiyang@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/boot')
-rw-r--r-- | arch/x86/boot/compressed/head_64.S | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index efdfba21a5b2..4d85e600db78 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S @@ -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 */ |