summaryrefslogtreecommitdiffstats
path: root/0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch')
-rw-r--r--0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch64
1 files changed, 0 insertions, 64 deletions
diff --git a/0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch b/0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch
deleted file mode 100644
index 55baf9b52..000000000
--- a/0001-x86-efi-always-map-first-physical-page-into-EFI-page.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From fb1d9d3f95654f00c4156129f3cd90d3efe32d26 Mon Sep 17 00:00:00 2001
-From: Jiri Kosina <jkosina@suse.cz>
-Date: Wed, 25 Jan 2017 20:52:33 +0100
-Subject: [PATCH] x86/efi: always map first physical page into EFI pagetables
-
-Commit 129766708 ("x86/efi: Only map RAM into EFI page tables if in
-mixed-mode") stopped creating 1:1 mapping for all RAM in case of running
-in native 64bit mode.
-
-It turns out though that there are 64bit EFI implementations in the wild
-(this particular problem has been reported on Lenovo Yoga 710-11IKB) which
-still make use of first physical page for their own private use (which is
-what legacy BIOS used to do, but EFI specification doesn't grant any such
-right to EFI BIOS ... oh well).
-
-In case there is no mapping for this particular frame in EFI pagetables,
-as soon as firmware tries to make use of it, triple fault occurs and the
-system reboots (in case of Yoga 710-11IKB this is very early during boot).
-
-Fix that by always mapping the first page of physical memory into EFI
-pagetables.
-
-Note: just reverting 129766708 is not enough on v4.9-rc1+ to fix the
-regression on affected hardware, as commit ab72a27da ("x86/efi:
-Consolidate region mapping logic") later made the first physical frame not
-to be mapped anyway.
-
-Fixes: 129766708 ("x86/efi: Only map RAM into EFI page tables if in mixed-mode")
-Cc: stable@kernel.org # v4.8+
-Cc: Waiman Long <waiman.long@hpe.com>
-Cc: Borislav Petkov <bp@suse.de>
-Cc: Laura Abbott <labbott@redhat.com>
-Cc: Vojtech Pavlik <vojtech@ucw.cz>
-Reported-by: Hanka Pavlikova <hanka@ucw.cz>
-Signed-off-by: Jiri Kosina <jkosina@suse.cz>
----
- arch/x86/platform/efi/efi_64.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
-index 319148bd4b05..02ae2abe8b8e 100644
---- a/arch/x86/platform/efi/efi_64.c
-+++ b/arch/x86/platform/efi/efi_64.c
-@@ -269,6 +269,17 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
- efi_scratch.use_pgd = true;
-
- /*
-+ * Certain firmware versions are way too sentimental and still believe
-+ * they are exclusive and unquestionable owners of first physical page.
-+ * Create 1:1 mapping for this page to avoid triple faults during early
-+ * boot with such firmware.
-+ */
-+ if (kernel_map_pages_in_pgd(pgd, 0x0, 0x0, 1, _PAGE_RW)) {
-+ pr_err("Failed to create 1:1 mapping of first page\n");
-+ return 1;
-+ }
-+
-+ /*
- * When making calls to the firmware everything needs to be 1:1
- * mapped and addressable with 32-bit pointers. Map the kernel
- * text and allocate a new stack because we can't rely on the
---
-2.11.0
-