summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-06-08 18:41:36 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2011-06-08 18:41:36 -0700
commit81b3d29fd6c2bdea13e7c486ec12ff91dc4ca2ed (patch)
treeb7306fa8c43385763da830ab1d49e59413975592
parent637b8995e63b18144960cba00e8a5ae3fee0de31 (diff)
downloadlongterm-queue-2.6.32-81b3d29fd6c2bdea13e7c486ec12ff91dc4ca2ed.tar.gz
.32 patches
-rw-r--r--queue-2.6.32/drm-i915-add-a-no-lvds-quirk-for-the-asus-eeebox-pc-eb1007.patch39
-rw-r--r--queue-2.6.32/drm-radeon-kms-fix-for-radeon-on-systems-4gb-without.patch43
-rw-r--r--queue-2.6.32/fat-fix-corrupt-inode-flags-when-remove-attr_sys-flag.patch30
-rw-r--r--queue-2.6.32/lockdep-fix-lock_is_held-on-recursion.patch40
-rw-r--r--queue-2.6.32/series7
-rw-r--r--queue-2.6.32/usb-cdc-acm-adding-second-acm-channel-support-for-nokia-e7.patch33
-rw-r--r--queue-2.6.32/x86-amd-iommu-fix-3-possible-endless-loops.patch52
-rw-r--r--queue-2.6.32/xen-off-by-one-errors-in-multicalls.c.patch72
8 files changed, 316 insertions, 0 deletions
diff --git a/queue-2.6.32/drm-i915-add-a-no-lvds-quirk-for-the-asus-eeebox-pc-eb1007.patch b/queue-2.6.32/drm-i915-add-a-no-lvds-quirk-for-the-asus-eeebox-pc-eb1007.patch
new file mode 100644
index 0000000..0cff44b
--- /dev/null
+++ b/queue-2.6.32/drm-i915-add-a-no-lvds-quirk-for-the-asus-eeebox-pc-eb1007.patch
@@ -0,0 +1,39 @@
+From 6a574b5b9b186e28abd3e571dfd1700c5220b510 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sat, 4 Jun 2011 15:39:21 +0200
+Subject: drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 6a574b5b9b186e28abd3e571dfd1700c5220b510 upstream.
+
+I found this while figuring out why gnome-shell would not run on my
+Asus EeeBox PC EB1007. As a standalone "pc" this device cleary does not have
+an internal panel, yet it claims it does. Add a quirk to fix this.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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
+@@ -905,6 +905,14 @@ static const struct dmi_system_id intel_
+ DMI_MATCH(DMI_PRODUCT_NAME, "U800"),
+ },
+ },
++ {
++ .callback = intel_no_lvds_dmi_callback,
++ .ident = "Asus EeeBox PC EB1007",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "EB1007"),
++ },
++ },
+
+ { } /* terminating entry */
+ };
diff --git a/queue-2.6.32/drm-radeon-kms-fix-for-radeon-on-systems-4gb-without.patch b/queue-2.6.32/drm-radeon-kms-fix-for-radeon-on-systems-4gb-without.patch
new file mode 100644
index 0000000..505ecc7
--- /dev/null
+++ b/queue-2.6.32/drm-radeon-kms-fix-for-radeon-on-systems-4gb-without.patch
@@ -0,0 +1,43 @@
+From 62fff811d73095bd95579d72f558f03c78f7914a Mon Sep 17 00:00:00 2001
+From: Daniel Haid <d.haid@gogi.tv>
+Date: Wed, 8 Jun 2011 20:04:45 +1000
+Subject: drm/radeon/kms: fix for radeon on systems >4GB without
+ hardware iommu
+
+From: Daniel Haid <d.haid@gogi.tv>
+
+commit 62fff811d73095bd95579d72f558f03c78f7914a upstream.
+
+On my x86_64 system with >4GB of ram and swiotlb instead of
+a hardware iommu (because I have a VIA chipset), the call
+to pci_set_dma_mask (see below) with 40bits returns an error.
+
+But it seems that the radeon driver is designed to have
+need_dma32 = true exactly if pci_set_dma_mask is called
+with 32 bits and false if it is called with 40 bits.
+
+I have read somewhere that the default are 32 bits. So if the
+call fails I suppose that need_dma32 should be set to true.
+
+And indeed the patch fixes the problem I have had before
+and which I had described here:
+http://choon.net/forum/read.php?21,106131,115940
+
+Acked-by: Alex Deucher <alexdeucher@gmail.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/radeon/radeon_device.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/radeon/radeon_device.c
++++ b/drivers/gpu/drm/radeon/radeon_device.c
+@@ -572,6 +572,7 @@ int radeon_device_init(struct radeon_dev
+ dma_bits = rdev->need_dma32 ? 32 : 40;
+ r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
+ if (r) {
++ rdev->need_dma32 = true;
+ printk(KERN_WARNING "radeon: No suitable DMA available.\n");
+ }
+
diff --git a/queue-2.6.32/fat-fix-corrupt-inode-flags-when-remove-attr_sys-flag.patch b/queue-2.6.32/fat-fix-corrupt-inode-flags-when-remove-attr_sys-flag.patch
new file mode 100644
index 0000000..2886511
--- /dev/null
+++ b/queue-2.6.32/fat-fix-corrupt-inode-flags-when-remove-attr_sys-flag.patch
@@ -0,0 +1,30 @@
+From 1adffbae22332bb558c2a29de19d9aca391869f6 Mon Sep 17 00:00:00 2001
+From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+Date: Tue, 31 May 2011 19:38:07 +0900
+Subject: fat: Fix corrupt inode flags when remove ATTR_SYS flag
+
+From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+
+commit 1adffbae22332bb558c2a29de19d9aca391869f6 upstream.
+
+We are clearly missing '~' in fat_ioctl_set_attributes().
+
+Reported-by: Dmitry Dmitriev <dimondmm@yandex.ru>
+Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/fat/file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/fat/file.c
++++ b/fs/fat/file.c
+@@ -101,7 +101,7 @@ static int fat_ioctl_set_attributes(stru
+ if (attr & ATTR_SYS)
+ inode->i_flags |= S_IMMUTABLE;
+ else
+- inode->i_flags &= S_IMMUTABLE;
++ inode->i_flags &= ~S_IMMUTABLE;
+ }
+
+ fat_save_attrs(inode, attr);
diff --git a/queue-2.6.32/lockdep-fix-lock_is_held-on-recursion.patch b/queue-2.6.32/lockdep-fix-lock_is_held-on-recursion.patch
new file mode 100644
index 0000000..d36a8d9
--- /dev/null
+++ b/queue-2.6.32/lockdep-fix-lock_is_held-on-recursion.patch
@@ -0,0 +1,40 @@
+From f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d Mon Sep 17 00:00:00 2001
+From: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Date: Mon, 6 Jun 2011 12:32:43 +0200
+Subject: lockdep: Fix lock_is_held() on recursion
+
+From: Peter Zijlstra <a.p.zijlstra@chello.nl>
+
+commit f2513cde93f0957d5dc6c09bc24b0cccd27d8e1d upstream.
+
+The main lock_is_held() user is lockdep_assert_held(), avoid false
+assertions in lockdep_off() sections by unconditionally reporting the
+lock is taken.
+
+[ the reason this is important is a lockdep_assert_held() in ttwu()
+ which triggers a warning under lockdep_off() as in printk() which
+ can trigger another wakeup and lock up due to spinlock
+ recursion, as reported and heroically debugged by Arne Jansen ]
+
+Reported-and-tested-by: Arne Jansen <lists@die-jansens.de>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Cc: Linus Torvalds <torvalds@linux-foundation.org>
+Link: http://lkml.kernel.org/r/1307398759.2497.966.camel@laptop
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/lockdep.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/lockdep.c
++++ b/kernel/lockdep.c
+@@ -3243,7 +3243,7 @@ int lock_is_held(struct lockdep_map *loc
+ int ret = 0;
+
+ if (unlikely(current->lockdep_recursion))
+- return ret;
++ return 1; /* avoid false negative lockdep_assert_held() */
+
+ raw_local_irq_save(flags);
+ check_flags(flags);
diff --git a/queue-2.6.32/series b/queue-2.6.32/series
index cfba1f5..e5b2155 100644
--- a/queue-2.6.32/series
+++ b/queue-2.6.32/series
@@ -58,3 +58,10 @@ fix-oops-caused-by-queue-refcounting-failure.patch
mm-fix-enospc-returned-by-handle_mm_fault.patch
pci-set-pcie-maxpayload-for-card-during-hotplug-insertion.patch
nl80211-fix-check-for-valid-ssid-size-in-scan-operations.patch
+lockdep-fix-lock_is_held-on-recursion.patch
+drm-i915-add-a-no-lvds-quirk-for-the-asus-eeebox-pc-eb1007.patch
+drm-radeon-kms-fix-for-radeon-on-systems-4gb-without.patch
+fat-fix-corrupt-inode-flags-when-remove-attr_sys-flag.patch
+xen-off-by-one-errors-in-multicalls.c.patch
+x86-amd-iommu-fix-3-possible-endless-loops.patch
+usb-cdc-acm-adding-second-acm-channel-support-for-nokia-e7.patch
diff --git a/queue-2.6.32/usb-cdc-acm-adding-second-acm-channel-support-for-nokia-e7.patch b/queue-2.6.32/usb-cdc-acm-adding-second-acm-channel-support-for-nokia-e7.patch
new file mode 100644
index 0000000..00e1cb5
--- /dev/null
+++ b/queue-2.6.32/usb-cdc-acm-adding-second-acm-channel-support-for-nokia-e7.patch
@@ -0,0 +1,33 @@
+From 4061fde2fa80f40cb27114f60500d38d0afcf350 Mon Sep 17 00:00:00 2001
+From: Toby Gray <toby.gray@realvnc.com>
+Date: Mon, 6 Jun 2011 14:52:48 +0100
+Subject: USB: cdc-acm: Adding second ACM channel support for Nokia E7
+ and C7
+
+From: Toby Gray <toby.gray@realvnc.com>
+
+commit 4061fde2fa80f40cb27114f60500d38d0afcf350 upstream.
+
+This adds the Nokia E7 and C7 to the list of devices in cdc-acm, allowing
+the secondary ACM channel on the device to be exposed. Without this patch
+the ACM driver won't claim this secondary channel as it's marked as
+having a vendor-specific protocol.
+
+Signed-off-by: Toby Gray <toby.gray@realvnc.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/class/cdc-acm.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/class/cdc-acm.c
++++ b/drivers/usb/class/cdc-acm.c
+@@ -1602,6 +1602,8 @@ static struct usb_device_id acm_ids[] =
+ { NOKIA_PCSUITE_ACM_INFO(0x04ce), }, /* Nokia E90 */
+ { NOKIA_PCSUITE_ACM_INFO(0x01d4), }, /* Nokia E55 */
+ { NOKIA_PCSUITE_ACM_INFO(0x0302), }, /* Nokia N8 */
++ { NOKIA_PCSUITE_ACM_INFO(0x0335), }, /* Nokia E7 */
++ { NOKIA_PCSUITE_ACM_INFO(0x03cd), }, /* Nokia C7 */
+ { SAMSUNG_PCSUITE_ACM_INFO(0x6651), }, /* Samsung GTi8510 (INNOV8) */
+
+ /* NOTE: non-Nokia COMM/ACM/0xff is likely MSFT RNDIS... NOT a modem! */
diff --git a/queue-2.6.32/x86-amd-iommu-fix-3-possible-endless-loops.patch b/queue-2.6.32/x86-amd-iommu-fix-3-possible-endless-loops.patch
new file mode 100644
index 0000000..a7e2dab
--- /dev/null
+++ b/queue-2.6.32/x86-amd-iommu-fix-3-possible-endless-loops.patch
@@ -0,0 +1,52 @@
+From 0de66d5b35ee148455e268b2782873204ffdef4b Mon Sep 17 00:00:00 2001
+From: Joerg Roedel <joerg.roedel@amd.com>
+Date: Mon, 6 Jun 2011 16:04:02 +0200
+Subject: x86/amd-iommu: Fix 3 possible endless loops
+
+From: Joerg Roedel <joerg.roedel@amd.com>
+
+commit 0de66d5b35ee148455e268b2782873204ffdef4b upstream.
+
+The driver contains several loops counting on an u16 value
+where the exit-condition is checked against variables that
+can have values up to 0xffff. In this case the loops will
+never exit. This patch fixed 3 such loops.
+
+Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/amd_iommu_init.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/arch/x86/kernel/amd_iommu_init.c
++++ b/arch/x86/kernel/amd_iommu_init.c
+@@ -640,8 +640,8 @@ static void __init init_iommu_from_acpi(
+ {
+ u8 *p = (u8 *)h;
+ u8 *end = p, flags = 0;
+- u16 dev_i, devid = 0, devid_start = 0, devid_to = 0;
+- u32 ext_flags = 0;
++ u16 devid = 0, devid_start = 0, devid_to = 0;
++ u32 dev_i, ext_flags = 0;
+ bool alias = false;
+ struct ivhd_entry *e;
+
+@@ -796,7 +796,7 @@ static void __init init_iommu_from_acpi(
+ /* Initializes the device->iommu mapping for the driver */
+ static int __init init_iommu_devices(struct amd_iommu *iommu)
+ {
+- u16 i;
++ u32 i;
+
+ for (i = iommu->first_device; i <= iommu->last_device; ++i)
+ set_iommu_for_device(iommu, i);
+@@ -1068,7 +1068,7 @@ static int __init init_memory_definition
+ */
+ static void init_device_table(void)
+ {
+- u16 devid;
++ u32 devid;
+
+ for (devid = 0; devid <= amd_iommu_last_bdf; ++devid) {
+ set_dev_entry_bit(devid, DEV_ENTRY_VALID);
diff --git a/queue-2.6.32/xen-off-by-one-errors-in-multicalls.c.patch b/queue-2.6.32/xen-off-by-one-errors-in-multicalls.c.patch
new file mode 100644
index 0000000..947982b
--- /dev/null
+++ b/queue-2.6.32/xen-off-by-one-errors-in-multicalls.c.patch
@@ -0,0 +1,72 @@
+From f124c6ae59e193705c9ddac57684d50006d710e6 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <error27@gmail.com>
+Date: Fri, 3 Jun 2011 07:45:28 +0300
+Subject: xen: off by one errors in multicalls.c
+
+From: Dan Carpenter <error27@gmail.com>
+
+commit f124c6ae59e193705c9ddac57684d50006d710e6 upstream.
+
+b->args[] has MC_ARGS elements, so the comparison here should be
+">=" instead of ">". Otherwise we read past the end of the array
+one space.
+
+Signed-off-by: Dan Carpenter <error27@gmail.com>
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/xen/multicalls.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/arch/x86/xen/multicalls.c
++++ b/arch/x86/xen/multicalls.c
+@@ -189,10 +189,10 @@ struct multicall_space __xen_mc_entry(si
+ unsigned argidx = roundup(b->argidx, sizeof(u64));
+
+ BUG_ON(preemptible());
+- BUG_ON(b->argidx > MC_ARGS);
++ BUG_ON(b->argidx >= MC_ARGS);
+
+ if (b->mcidx == MC_BATCH ||
+- (argidx + args) > MC_ARGS) {
++ (argidx + args) >= MC_ARGS) {
+ mc_stats_flush(b->mcidx == MC_BATCH ? FL_SLOTS : FL_ARGS);
+ xen_mc_flush();
+ argidx = roundup(b->argidx, sizeof(u64));
+@@ -206,7 +206,7 @@ struct multicall_space __xen_mc_entry(si
+ ret.args = &b->args[argidx];
+ b->argidx = argidx + args;
+
+- BUG_ON(b->argidx > MC_ARGS);
++ BUG_ON(b->argidx >= MC_ARGS);
+ return ret;
+ }
+
+@@ -216,7 +216,7 @@ struct multicall_space xen_mc_extend_arg
+ struct multicall_space ret = { NULL, NULL };
+
+ BUG_ON(preemptible());
+- BUG_ON(b->argidx > MC_ARGS);
++ BUG_ON(b->argidx >= MC_ARGS);
+
+ if (b->mcidx == 0)
+ return ret;
+@@ -224,14 +224,14 @@ struct multicall_space xen_mc_extend_arg
+ if (b->entries[b->mcidx - 1].op != op)
+ return ret;
+
+- if ((b->argidx + size) > MC_ARGS)
++ if ((b->argidx + size) >= MC_ARGS)
+ return ret;
+
+ ret.mc = &b->entries[b->mcidx - 1];
+ ret.args = &b->args[b->argidx];
+ b->argidx += size;
+
+- BUG_ON(b->argidx > MC_ARGS);
++ BUG_ON(b->argidx >= MC_ARGS);
+ return ret;
+ }
+