summaryrefslogtreecommitdiffstats
path: root/Modify-UEFI-anti-bricking-code.patch
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2013-06-04 17:14:21 -0400
committerDave Jones <davej@redhat.com>2013-06-04 17:14:21 -0400
commitbc6523eec2d2bc64fe0705620dea34fa383f3bcf (patch)
treebe41e57100ae57f05596281478a0d171186c7794 /Modify-UEFI-anti-bricking-code.patch
parentf58391d7ed12eef1c6a3732cbca52dcd4644ee30 (diff)
downloadkernel-bc6523eec2d2bc64fe0705620dea34fa383f3bcf.tar.gz
kernel-bc6523eec2d2bc64fe0705620dea34fa383f3bcf.tar.xz
kernel-bc6523eec2d2bc64fe0705620dea34fa383f3bcf.zip
3.10-rc4
merged: radeon-use-max_bus-speed-to-activate-gen2-speeds.patch merged: iscsi-target-fix-heap-buffer-overflow-on-error.patch
Diffstat (limited to 'Modify-UEFI-anti-bricking-code.patch')
-rw-r--r--Modify-UEFI-anti-bricking-code.patch45
1 files changed, 29 insertions, 16 deletions
diff --git a/Modify-UEFI-anti-bricking-code.patch b/Modify-UEFI-anti-bricking-code.patch
index 86257455..269359f4 100644
--- a/Modify-UEFI-anti-bricking-code.patch
+++ b/Modify-UEFI-anti-bricking-code.patch
@@ -1,7 +1,14 @@
-From 2380baac8b96f6e93ef72135d1b60d686d7f82e6 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Sat, 1 Jun 2013 16:06:20 -0400
+To: rja@sgi.com
+Cc: mingo@kernel.org, torvalds@linux-foundation.org, bp@alien8.de,
+ jkosina@suse.cz, jlee@suse.com, matt.fleming@intel.com,
+ linux-efi@vger.kernel.org, x86@kernel.org,
+ linux-kernel@vger.kernel.org, tglx@linutronix.de, hpa@linux.intel.com,
+ akpm@linux-foundation.org,
+ Matthew Garrett <matthew.garrett@nebula.com>
Subject: [PATCH] Modify UEFI anti-bricking code
+Date: Sat, 1 Jun 2013 16:06:20 -0400
+Message-Id: <1370117180-1712-1-git-send-email-matthew.garrett@nebula.com>
This patch reworks the UEFI anti-bricking code, including an effective
reversion of cc5a080c and 31ff2f20. It turns out that calling
@@ -33,8 +40,8 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
arch/x86/boot/compressed/eboot.c | 47 ----------
arch/x86/include/asm/efi.h | 7 --
arch/x86/include/uapi/asm/bootparam.h | 1 -
- arch/x86/platform/efi/efi.c | 167 +++++++++-------------------------
- 4 files changed, 44 insertions(+), 178 deletions(-)
+ arch/x86/platform/efi/efi.c | 169 +++++++++-------------------------
+ 4 files changed, 45 insertions(+), 179 deletions(-)
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
index 35ee62f..c205035 100644
@@ -132,10 +139,10 @@ index 0874424..c15ddaf 100644
/* ram_size flags */
#define RAMDISK_IMAGE_START_MASK 0x07FF
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
-index e4a86a6..beb5d5f 100644
+index 82089d8..63e167a 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
-@@ -41,7 +41,6 @@
+@@ -42,7 +42,6 @@
#include <linux/io.h>
#include <linux/reboot.h>
#include <linux/bcd.h>
@@ -143,7 +150,7 @@ index e4a86a6..beb5d5f 100644
#include <asm/setup.h>
#include <asm/efi.h>
-@@ -52,13 +51,6 @@
+@@ -54,13 +53,6 @@
#define EFI_DEBUG 1
@@ -157,7 +164,7 @@ index e4a86a6..beb5d5f 100644
struct efi __read_mostly efi = {
.mps = EFI_INVALID_TABLE_ADDR,
.acpi = EFI_INVALID_TABLE_ADDR,
-@@ -77,13 +69,6 @@ struct efi_memory_map memmap;
+@@ -79,13 +71,6 @@ struct efi_memory_map memmap;
static struct efi efi_phys __initdata;
static efi_system_table_t efi_systab __initdata;
@@ -171,7 +178,7 @@ index e4a86a6..beb5d5f 100644
unsigned long x86_efi_facility;
/*
-@@ -186,53 +171,8 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
+@@ -188,53 +173,8 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
efi_char16_t *name,
efi_guid_t *vendor)
{
@@ -180,8 +187,7 @@ index e4a86a6..beb5d5f 100644
- static u64 var_size;
-
- status = efi_call_virt3(get_next_variable,
-+ return efi_call_virt3(get_next_variable,
- name_size, name, vendor);
+- name_size, name, vendor);
-
- if (status == EFI_NOT_FOUND) {
- finished = true;
@@ -194,7 +200,7 @@ index e4a86a6..beb5d5f 100644
- }
-
- if (boot_used_size && !finished) {
-- unsigned long size;
+- unsigned long size = 0;
- u32 attr;
- efi_status_t s;
- void *tmp;
@@ -223,10 +229,12 @@ index e4a86a6..beb5d5f 100644
- }
-
- return status;
++ return efi_call_virt3(get_next_variable,
++ name_size, name, vendor);
}
static efi_status_t virt_efi_set_variable(efi_char16_t *name,
-@@ -241,34 +181,9 @@ static efi_status_t virt_efi_set_variable(efi_char16_t *name,
+@@ -243,34 +183,9 @@ static efi_status_t virt_efi_set_variable(efi_char16_t *name,
unsigned long data_size,
void *data)
{
@@ -264,7 +272,7 @@ index e4a86a6..beb5d5f 100644
}
static efi_status_t virt_efi_query_variable_info(u32 attr,
-@@ -776,9 +691,6 @@ void __init efi_init(void)
+@@ -786,9 +701,6 @@ void __init efi_init(void)
char vendor[100] = "unknown";
int i = 0;
void *tmp;
@@ -274,7 +282,7 @@ index e4a86a6..beb5d5f 100644
#ifdef CONFIG_X86_32
if (boot_params.efi_info.efi_systab_hi ||
-@@ -796,22 +708,6 @@ void __init efi_init(void)
+@@ -806,22 +718,6 @@ void __init efi_init(void)
if (efi_systab_init(efi_phys.systab))
return;
@@ -297,7 +305,7 @@ index e4a86a6..beb5d5f 100644
set_bit(EFI_SYSTEM_TABLES, &x86_efi_facility);
/*
-@@ -1131,28 +1027,53 @@ efi_status_t efi_query_variable_store(u32 attributes, unsigned long size)
+@@ -1141,28 +1037,53 @@ efi_status_t efi_query_variable_store(u32 attributes, unsigned long size)
if (status != EFI_SUCCESS)
return status;
@@ -369,3 +377,8 @@ index e4a86a6..beb5d5f 100644
--
1.8.1.4
+--
+To unsubscribe from this list: send the line "unsubscribe linux-efi" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+