summaryrefslogtreecommitdiffstats
path: root/Revert-x86-efi-Fixup-GOT-in-all-boot-code-paths.patch
diff options
context:
space:
mode:
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.patch209
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
-