From: Greg Kroah-Hartman Date: Mon, 29 Oct 2012 18:44:09 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.0.50~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=910b4c46d561eb445efba62c59c0a394c47425df;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch --- diff --git a/queue-3.4/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch b/queue-3.4/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch new file mode 100644 index 00000000000..86b6f8c1111 --- /dev/null +++ b/queue-3.4/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch @@ -0,0 +1,37 @@ +From 9756fe38d10b2bf90c81dc4d2f17d5632e135364 Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +Date: Fri, 22 Jun 2012 09:43:07 +0200 +Subject: drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13 + +From: Sjoerd Simons + +commit 9756fe38d10b2bf90c81dc4d2f17d5632e135364 upstream. + +This box claims to have an LVDS interface but doesn't +actually have one. + +Signed-off-by: Sjoerd Simons +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_lvds.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/gpu/drm/i915/intel_lvds.c ++++ b/drivers/gpu/drm/i915/intel_lvds.c +@@ -777,6 +777,14 @@ static const struct dmi_system_id intel_ + DMI_MATCH(DMI_BOARD_NAME, "MS-7469"), + }, + }, ++ { ++ .callback = intel_no_lvds_dmi_callback, ++ .ident = "ZOTAC ZBOXSD-ID12/ID13", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ZOTAC"), ++ DMI_MATCH(DMI_BOARD_NAME, "ZBOXSD-ID12/ID13"), ++ }, ++ }, + + { } /* terminating entry */ + }; diff --git a/queue-3.4/series b/queue-3.4/series index 67ae4894fc8..15e9593df06 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -49,3 +49,6 @@ x86-mm-find_early_table_space-based-on-ranges-that-are-actually-being-mapped.pat x86-mm-undo-incorrect-revert-in-arch-x86-mm-init.c.patch efi-defer-freeing-boot-services-memory-until-after-acpi-init.patch x86-efi-turn-off-efi_enabled-after-setup-on-mixed-fw-kernel.patch +staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch +x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch +drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch diff --git a/queue-3.4/staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch b/queue-3.4/staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch new file mode 100644 index 00000000000..30bab0a3b0a --- /dev/null +++ b/queue-3.4/staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch @@ -0,0 +1,40 @@ +From aaeb61a97b7159ebe30b18a422d04eeabfa8790b Mon Sep 17 00:00:00 2001 +From: Ian Abbott +Date: Wed, 3 Oct 2012 16:25:17 +0100 +Subject: staging: comedi: amplc_pc236: fix invalid register access during detach + +From: Ian Abbott + +commit aaeb61a97b7159ebe30b18a422d04eeabfa8790b upstream. + +`pc236_detach()` is called by the comedi core if it attempted to attach +a device and failed. `pc236_detach()` calls `pc236_intr_disable()` if +the comedi device private data pointer (`devpriv`) is non-null. This +test is insufficient as `pc236_intr_disable()` accesses hardware +registers and the attach routine may have failed before it has saved +their I/O base addresses. + +Fix it by checking `dev->iobase` is non-zero before calling +`pc236_intr_disable()` as that means the I/O base addresses have been +saved and the hardware registers can be accessed. It also implies the +comedi device private data pointer is valid, so there is no need to +check it. + +Signed-off-by: Ian Abbott +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/comedi/drivers/amplc_pc236.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/staging/comedi/drivers/amplc_pc236.c ++++ b/drivers/staging/comedi/drivers/amplc_pc236.c +@@ -468,7 +468,7 @@ static int pc236_detach(struct comedi_de + { + printk(KERN_DEBUG "comedi%d: %s: detach\n", dev->minor, + PC236_DRIVER_NAME); +- if (devpriv) ++ if (dev->iobase) + pc236_intr_disable(dev); + + if (dev->irq) diff --git a/queue-3.4/x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch b/queue-3.4/x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch new file mode 100644 index 00000000000..f75988c0211 --- /dev/null +++ b/queue-3.4/x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch @@ -0,0 +1,53 @@ +From 1f2ff682ac951ed82cc043cf140d2851084512df Mon Sep 17 00:00:00 2001 +From: Yinghai Lu +Date: Mon, 22 Oct 2012 16:35:18 -0700 +Subject: x86, mm: Use memblock memory loop instead of e820_RAM + +From: Yinghai Lu + +commit 1f2ff682ac951ed82cc043cf140d2851084512df upstream. + +We need to handle E820_RAM and E820_RESERVED_KERNEL at the same time. + +Also memblock has page aligned range for ram, so we could avoid mapping +partial pages. + +Signed-off-by: Yinghai Lu +Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com +Acked-by: Jacob Shin +Signed-off-by: H. Peter Anvin +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kernel/setup.c | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -928,18 +928,19 @@ void __init setup_arch(char **cmdline_p) + #ifdef CONFIG_X86_64 + if (max_pfn > max_low_pfn) { + int i; +- for (i = 0; i < e820.nr_map; i++) { +- struct e820entry *ei = &e820.map[i]; ++ unsigned long start, end; ++ unsigned long start_pfn, end_pfn; + +- if (ei->addr + ei->size <= 1UL << 32) +- continue; ++ for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, ++ NULL) { + +- if (ei->type == E820_RESERVED) ++ end = PFN_PHYS(end_pfn); ++ if (end <= (1UL<<32)) + continue; + ++ start = PFN_PHYS(start_pfn); + max_pfn_mapped = init_memory_mapping( +- ei->addr < 1UL << 32 ? 1UL << 32 : ei->addr, +- ei->addr + ei->size); ++ max((1UL<<32), start), end); + } + + /* can we preseve max_low_pfn ?*/