]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Oct 2013 21:01:28 +0000 (14:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Oct 2013 21:01:28 +0000 (14:01 -0700)
added patches:
x86-efi-don-t-map-boot-services-on-i386.patch
x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch

queue-3.0/series
queue-3.0/x86-efi-don-t-map-boot-services-on-i386.patch [new file with mode: 0644]
queue-3.0/x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch [new file with mode: 0644]

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7b5f1b30187b21fe90fae5f78b270778692af815 100644 (file)
@@ -0,0 +1,2 @@
+x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch
+x86-efi-don-t-map-boot-services-on-i386.patch
diff --git a/queue-3.0/x86-efi-don-t-map-boot-services-on-i386.patch b/queue-3.0/x86-efi-don-t-map-boot-services-on-i386.patch
new file mode 100644 (file)
index 0000000..2acc27f
--- /dev/null
@@ -0,0 +1,88 @@
+From 700870119f49084da004ab588ea2b799689efaf7 Mon Sep 17 00:00:00 2001
+From: Josh Boyer <jwboyer@redhat.com>
+Date: Thu, 18 Apr 2013 07:51:34 -0700
+Subject: x86, efi: Don't map Boot Services on i386
+
+From: Josh Boyer <jwboyer@redhat.com>
+
+commit 700870119f49084da004ab588ea2b799689efaf7 upstream.
+
+Add patch to fix 32bit EFI service mapping (rhbz 726701)
+
+Multiple people are reporting hitting the following WARNING on i386,
+
+  WARNING: at arch/x86/mm/ioremap.c:102 __ioremap_caller+0x3d3/0x440()
+  Modules linked in:
+  Pid: 0, comm: swapper Not tainted 3.9.0-rc7+ #95
+  Call Trace:
+   [<c102b6af>] warn_slowpath_common+0x5f/0x80
+   [<c1023fb3>] ? __ioremap_caller+0x3d3/0x440
+   [<c1023fb3>] ? __ioremap_caller+0x3d3/0x440
+   [<c102b6ed>] warn_slowpath_null+0x1d/0x20
+   [<c1023fb3>] __ioremap_caller+0x3d3/0x440
+   [<c106007b>] ? get_usage_chars+0xfb/0x110
+   [<c102d937>] ? vprintk_emit+0x147/0x480
+   [<c1418593>] ? efi_enter_virtual_mode+0x1e4/0x3de
+   [<c102406a>] ioremap_cache+0x1a/0x20
+   [<c1418593>] ? efi_enter_virtual_mode+0x1e4/0x3de
+   [<c1418593>] efi_enter_virtual_mode+0x1e4/0x3de
+   [<c1407984>] start_kernel+0x286/0x2f4
+   [<c1407535>] ? repair_env_string+0x51/0x51
+   [<c1407362>] i386_start_kernel+0x12c/0x12f
+
+Due to the workaround described in commit 916f676f8 ("x86, efi: Retain
+boot service code until after switching to virtual mode") EFI Boot
+Service regions are mapped for a period during boot. Unfortunately, with
+the limited size of the i386 direct kernel map it's possible that some
+of the Boot Service regions will not be directly accessible, which
+causes them to be ioremap()'d, triggering the above warning as the
+regions are marked as E820_RAM in the e820 memmap.
+
+There are currently only two situations where we need to map EFI Boot
+Service regions,
+
+  1. To workaround the firmware bug described in 916f676f8
+  2. To access the ACPI BGRT image
+
+but since we haven't seen an i386 implementation that requires either,
+this simple fix should suffice for now.
+
+[ Added to changelog - Matt ]
+
+Reported-by: Bryan O'Donoghue <bryan.odonoghue.lkml@nexus-software.ie>
+Acked-by: Tom Zanussi <tom.zanussi@intel.com>
+Acked-by: Darren Hart <dvhart@linux.intel.com>
+Cc: Josh Triplett <josh@joshtriplett.org>
+Cc: Matthew Garrett <mjg59@srcf.ucam.org>
+Cc: H. Peter Anvin <hpa@zytor.com>
+Cc: Ingo Molnar <mingo@kernel.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Josh Boyer <jwboyer@redhat.com>
+Signed-off-by: Matt Fleming <matt.fleming@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/platform/efi/efi.c |   11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/platform/efi/efi.c
++++ b/arch/x86/platform/efi/efi.c
+@@ -588,10 +588,13 @@ void __init efi_enter_virtual_mode(void)
+       for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
+               md = p;
+-              if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
+-                  md->type != EFI_BOOT_SERVICES_CODE &&
+-                  md->type != EFI_BOOT_SERVICES_DATA)
+-                      continue;
++              if (!(md->attribute & EFI_MEMORY_RUNTIME)) {
++#ifdef CONFIG_X86_64
++                      if (md->type != EFI_BOOT_SERVICES_CODE &&
++                          md->type != EFI_BOOT_SERVICES_DATA)
++#endif
++                              continue;
++              }
+               size = md->num_pages << EFI_PAGE_SHIFT;
+               end = md->phys_addr + size;
diff --git a/queue-3.0/x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch b/queue-3.0/x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch
new file mode 100644 (file)
index 0000000..da465c3
--- /dev/null
@@ -0,0 +1,49 @@
+From 4f0acd31c31f03ba42494c8baf6c0465150e2621 Mon Sep 17 00:00:00 2001
+From: Masoud Sharbiani <msharbiani@twitter.com>
+Date: Fri, 20 Sep 2013 15:59:07 -0700
+Subject: x86/reboot: Add quirk to make Dell C6100 use reboot=pci automatically
+
+From: Masoud Sharbiani <msharbiani@twitter.com>
+
+commit 4f0acd31c31f03ba42494c8baf6c0465150e2621 upstream.
+
+Dell PowerEdge C6100 machines fail to completely reboot about 20% of the time.
+
+Signed-off-by: Masoud Sharbiani <msharbiani@twitter.com>
+Signed-off-by: Vinson Lee <vlee@twitter.com>
+Cc: Robin Holt <holt@sgi.com>
+Cc: Russell King <rmk+kernel@arm.linux.org.uk>
+Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
+Link: http://lkml.kernel.org/r/1379717947-18042-1-git-send-email-vlee@freedesktop.org
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/reboot.c |   16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+--- a/arch/x86/kernel/reboot.c
++++ b/arch/x86/kernel/reboot.c
+@@ -460,6 +460,22 @@ static struct dmi_system_id __initdata p
+                       DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"),
+               },
+       },
++      {       /* Handle problems with rebooting on the Dell PowerEdge C6100. */
++              .callback = set_pci_reboot,
++              .ident = "Dell PowerEdge C6100",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "C6100"),
++              },
++      },
++      {       /* Some C6100 machines were shipped with vendor being 'Dell'. */
++              .callback = set_pci_reboot,
++              .ident = "Dell PowerEdge C6100",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "C6100"),
++              },
++      },
+       { }
+ };