]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 29 Oct 2012 18:44:09 +0000 (11:44 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 29 Oct 2012 18:44:09 +0000 (11:44 -0700)
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

queue-3.4/drm-i915-no-lvds-quirk-for-zotac-zdbox-sd-id12-id13.patch [new file with mode: 0644]
queue-3.4/series
queue-3.4/staging-comedi-amplc_pc236-fix-invalid-register-access-during-detach.patch [new file with mode: 0644]
queue-3.4/x86-mm-use-memblock-memory-loop-instead-of-e820_ram.patch [new file with mode: 0644]

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 (file)
index 0000000..86b6f8c
--- /dev/null
@@ -0,0 +1,37 @@
+From 9756fe38d10b2bf90c81dc4d2f17d5632e135364 Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+Date: Fri, 22 Jun 2012 09:43:07 +0200
+Subject: drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13
+
+From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+commit 9756fe38d10b2bf90c81dc4d2f17d5632e135364 upstream.
+
+This box claims to have an LVDS interface but doesn't
+actually have one.
+
+Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 */
+ };
index 67ae4894fc87d24b5e24aaa8bf18bf665d3499b6..15e9593df068a2afe7fb384ded59d30f9058ffb9 100644 (file)
@@ -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 (file)
index 0000000..30bab0a
--- /dev/null
@@ -0,0 +1,40 @@
+From aaeb61a97b7159ebe30b18a422d04eeabfa8790b Mon Sep 17 00:00:00 2001
+From: Ian Abbott <abbotti@mev.co.uk>
+Date: Wed, 3 Oct 2012 16:25:17 +0100
+Subject: staging: comedi: amplc_pc236: fix invalid register access during detach
+
+From: Ian Abbott <abbotti@mev.co.uk>
+
+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 <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..f75988c
--- /dev/null
@@ -0,0 +1,53 @@
+From 1f2ff682ac951ed82cc043cf140d2851084512df Mon Sep 17 00:00:00 2001
+From: Yinghai Lu <yinghai@kernel.org>
+Date: Mon, 22 Oct 2012 16:35:18 -0700
+Subject: x86, mm: Use memblock memory loop instead of e820_RAM
+
+From: Yinghai Lu <yinghai@kernel.org>
+
+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 <yinghai@kernel.org>
+Link: http://lkml.kernel.org/r/CAE9FiQVZirvaBMFYRfXMmWEcHbKSicQEHz4VAwUv0xFCk51ZNw@mail.gmail.com
+Acked-by: Jacob Shin <jacob.shin@amd.com>
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 ?*/