From: Greg Kroah-Hartman Date: Tue, 1 Oct 2013 21:01:28 +0000 (-0700) Subject: 3.0-stable patches X-Git-Tag: v3.0.99~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=05698657179457071af794800a250e61ee52722f;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches 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 --- diff --git a/queue-3.0/series b/queue-3.0/series index e69de29bb2d..7b5f1b30187 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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 index 00000000000..2acc27fba75 --- /dev/null +++ b/queue-3.0/x86-efi-don-t-map-boot-services-on-i386.patch @@ -0,0 +1,88 @@ +From 700870119f49084da004ab588ea2b799689efaf7 Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Thu, 18 Apr 2013 07:51:34 -0700 +Subject: x86, efi: Don't map Boot Services on i386 + +From: Josh Boyer + +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: + [] warn_slowpath_common+0x5f/0x80 + [] ? __ioremap_caller+0x3d3/0x440 + [] ? __ioremap_caller+0x3d3/0x440 + [] warn_slowpath_null+0x1d/0x20 + [] __ioremap_caller+0x3d3/0x440 + [] ? get_usage_chars+0xfb/0x110 + [] ? vprintk_emit+0x147/0x480 + [] ? efi_enter_virtual_mode+0x1e4/0x3de + [] ioremap_cache+0x1a/0x20 + [] ? efi_enter_virtual_mode+0x1e4/0x3de + [] efi_enter_virtual_mode+0x1e4/0x3de + [] start_kernel+0x286/0x2f4 + [] ? repair_env_string+0x51/0x51 + [] 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 +Acked-by: Tom Zanussi +Acked-by: Darren Hart +Cc: Josh Triplett +Cc: Matthew Garrett +Cc: H. Peter Anvin +Cc: Ingo Molnar +Cc: Thomas Gleixner +Cc: Greg Kroah-Hartman +Signed-off-by: Josh Boyer +Signed-off-by: Matt Fleming +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..da465c313b0 --- /dev/null +++ b/queue-3.0/x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch @@ -0,0 +1,49 @@ +From 4f0acd31c31f03ba42494c8baf6c0465150e2621 Mon Sep 17 00:00:00 2001 +From: Masoud Sharbiani +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 + +commit 4f0acd31c31f03ba42494c8baf6c0465150e2621 upstream. + +Dell PowerEdge C6100 machines fail to completely reboot about 20% of the time. + +Signed-off-by: Masoud Sharbiani +Signed-off-by: Vinson Lee +Cc: Robin Holt +Cc: Russell King +Cc: Guan Xuetao +Link: http://lkml.kernel.org/r/1379717947-18042-1-git-send-email-vlee@freedesktop.org +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + 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"), ++ }, ++ }, + { } + }; +