diff options
| author | Dave Jones <davej@redhat.com> | 2013-06-04 17:14:21 -0400 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2013-06-04 17:14:21 -0400 |
| commit | bc6523eec2d2bc64fe0705620dea34fa383f3bcf (patch) | |
| tree | be41e57100ae57f05596281478a0d171186c7794 /Modify-UEFI-anti-bricking-code.patch | |
| parent | f58391d7ed12eef1c6a3732cbca52dcd4644ee30 (diff) | |
| download | kernel-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.patch | 45 |
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 + |
