diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-06-08 18:41:36 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-06-08 18:41:36 -0700 |
commit | 81b3d29fd6c2bdea13e7c486ec12ff91dc4ca2ed (patch) | |
tree | b7306fa8c43385763da830ab1d49e59413975592 | |
parent | 637b8995e63b18144960cba00e8a5ae3fee0de31 (diff) | |
download | longterm-queue-2.6.32-81b3d29fd6c2bdea13e7c486ec12ff91dc4ca2ed.tar.gz |
.32 patches
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; + } + |