diff options
author | Josh Boyer <jwboyer@fedoraproject.org> | 2014-09-23 10:19:58 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@fedoraproject.org> | 2014-09-23 10:20:20 -0400 |
commit | f1140bd02a37c3d10cf555fa63d359c9d9885e6a (patch) | |
tree | 274c0d8dfa38d63f425cacd8c4ae565d9a05ecd2 /Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch | |
parent | d6dbb7a0020224395813f3f5679f823b7039f440 (diff) | |
download | kernel-f1140bd02a37c3d10cf555fa63d359c9d9885e6a.tar.gz kernel-f1140bd02a37c3d10cf555fa63d359c9d9885e6a.tar.xz kernel-f1140bd02a37c3d10cf555fa63d359c9d9885e6a.zip |
Linux v3.17-rc6-125-gf3670394c29f
Diffstat (limited to 'Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch')
-rw-r--r-- | Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch b/Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch deleted file mode 100644 index 842901a6d..000000000 --- a/Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 6b57872f1ef945b97044a7fbbd75dfb526cd6aff Mon Sep 17 00:00:00 2001 -From: Josh Boyer <jwboyer@fedoraproject.org> -Date: Mon, 22 Sep 2014 14:45:11 -0400 -Subject: [PATCH] Revert "x86/efi: Fixup GOT in all boot code paths" - -This reverts commit 9cb0e394234d244fe5a97e743ec9dd7ddff7e64b. ---- - arch/x86/boot/compressed/head_32.S | 54 ++++++++++-------------------------- - arch/x86/boot/compressed/head_64.S | 56 ++++++++++---------------------------- - 2 files changed, 29 insertions(+), 81 deletions(-) - -diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S -index d6b8aa4c986c..cbed1407a5cd 100644 ---- a/arch/x86/boot/compressed/head_32.S -+++ b/arch/x86/boot/compressed/head_32.S -@@ -30,33 +30,6 @@ - #include <asm/boot.h> - #include <asm/asm-offsets.h> - --/* -- * Adjust our own GOT -- * -- * The relocation base must be in %ebx -- * -- * It is safe to call this macro more than once, because in some of the -- * code paths multiple invocations are inevitable, e.g. via the efi* -- * entry points. -- * -- * Relocation is only performed the first time. -- */ --.macro FIXUP_GOT -- cmpb $1, got_fixed(%ebx) -- je 2f -- -- leal _got(%ebx), %edx -- leal _egot(%ebx), %ecx --1: -- cmpl %ecx, %edx -- jae 2f -- addl %ebx, (%edx) -- addl $4, %edx -- jmp 1b --2: -- movb $1, got_fixed(%ebx) --.endm -- - __HEAD - ENTRY(startup_32) - #ifdef CONFIG_EFI_STUB -@@ -83,9 +56,6 @@ ENTRY(efi_pe_entry) - add %esi, 88(%eax) - pushl %eax - -- movl %esi, %ebx -- FIXUP_GOT -- - call make_boot_params - cmpl $0, %eax - je fail -@@ -111,10 +81,6 @@ ENTRY(efi32_stub_entry) - leal efi32_config(%esi), %eax - add %esi, 88(%eax) - pushl %eax -- -- movl %esi, %ebx -- FIXUP_GOT -- - 2: - call efi_main - cmpl $0, %eax -@@ -224,7 +190,19 @@ relocated: - shrl $2, %ecx - rep stosl - -- FIXUP_GOT -+/* -+ * Adjust our own GOT -+ */ -+ leal _got(%ebx), %edx -+ leal _egot(%ebx), %ecx -+1: -+ cmpl %ecx, %edx -+ jae 2f -+ addl %ebx, (%edx) -+ addl $4, %edx -+ jmp 1b -+2: -+ - /* - * Do the decompression, and jump to the new kernel.. - */ -@@ -247,12 +225,8 @@ relocated: - xorl %ebx, %ebx - jmp *%eax - -- .data --/* Have we relocated the GOT? */ --got_fixed: -- .byte 0 -- - #ifdef CONFIG_EFI_STUB -+ .data - efi32_config: - .fill 11,8,0 - .long efi_call_phys -diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S -index 50f69c7eaaf4..2884e0c3e8a5 100644 ---- a/arch/x86/boot/compressed/head_64.S -+++ b/arch/x86/boot/compressed/head_64.S -@@ -32,33 +32,6 @@ - #include <asm/processor-flags.h> - #include <asm/asm-offsets.h> - --/* -- * Adjust our own GOT -- * -- * The relocation base must be in %rbx -- * -- * It is safe to call this macro more than once, because in some of the -- * code paths multiple invocations are inevitable, e.g. via the efi* -- * entry points. -- * -- * Relocation is only performed the first time. -- */ --.macro FIXUP_GOT -- cmpb $1, got_fixed(%rip) -- je 2f -- -- leaq _got(%rip), %rdx -- leaq _egot(%rip), %rcx --1: -- cmpq %rcx, %rdx -- jae 2f -- addq %rbx, (%rdx) -- addq $8, %rdx -- jmp 1b --2: -- movb $1, got_fixed(%rip) --.endm -- - __HEAD - .code32 - ENTRY(startup_32) -@@ -279,13 +252,10 @@ ENTRY(efi_pe_entry) - subq $1b, %rbp - - /* -- * Relocate efi_config->call() and the GOT entries. -+ * Relocate efi_config->call(). - */ - addq %rbp, efi64_config+88(%rip) - -- movq %rbp, %rbx -- FIXUP_GOT -- - movq %rax, %rdi - call make_boot_params - cmpq $0,%rax -@@ -301,13 +271,10 @@ handover_entry: - subq $1b, %rbp - - /* -- * Relocate efi_config->call() and the GOT entries. -+ * Relocate efi_config->call(). - */ - movq efi_config(%rip), %rax - addq %rbp, 88(%rax) -- -- movq %rbp, %rbx -- FIXUP_GOT - 2: - movq efi_config(%rip), %rdi - call efi_main -@@ -418,8 +385,19 @@ relocated: - shrq $3, %rcx - rep stosq - -- FIXUP_GOT -- -+/* -+ * Adjust our own GOT -+ */ -+ leaq _got(%rip), %rdx -+ leaq _egot(%rip), %rcx -+1: -+ cmpq %rcx, %rdx -+ jae 2f -+ addq %rbx, (%rdx) -+ addq $8, %rdx -+ jmp 1b -+2: -+ - /* - * Do the decompression, and jump to the new kernel.. - */ -@@ -459,10 +437,6 @@ gdt: - .quad 0x0000000000000000 /* TS continued */ - gdt_end: - --/* Have we relocated the GOT? */ --got_fixed: -- .byte 0 -- - #ifdef CONFIG_EFI_STUB - efi_config: - .quad 0 --- -1.9.3 - |