]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.3-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Apr 2012 17:52:44 +0000 (10:52 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Apr 2012 17:52:44 +0000 (10:52 -0700)
added patches:
bluetooth-add-support-for-atheros.patch
dell-laptop-add-3-machines-that-has-touchpad-led.patch
dell-laptop-touchpad-led-should-persist-its-status-after-s3.patch
ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
kvm-unmap-pages-from-the-iommu-when-slots-are-removed.patch

queue-3.3/bluetooth-add-support-for-atheros.patch [new file with mode: 0644]
queue-3.3/dell-laptop-add-3-machines-that-has-touchpad-led.patch [new file with mode: 0644]
queue-3.3/dell-laptop-touchpad-led-should-persist-its-status-after-s3.patch [new file with mode: 0644]
queue-3.3/ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch [new file with mode: 0644]
queue-3.3/kvm-unmap-pages-from-the-iommu-when-slots-are-removed.patch [new file with mode: 0644]
queue-3.3/series

diff --git a/queue-3.3/bluetooth-add-support-for-atheros.patch b/queue-3.3/bluetooth-add-support-for-atheros.patch
new file mode 100644 (file)
index 0000000..988ffb1
--- /dev/null
@@ -0,0 +1,60 @@
+From 55ed7d4d1469eafbe3ad7e8fcd44f5af27845a81 Mon Sep 17 00:00:00 2001
+From: AceLan Kao <acelan.kao@canonical.com>
+Date: Wed, 28 Mar 2012 10:25:36 +0800
+Subject: Bluetooth: Add support for Atheros [04ca:3005]
+
+From: AceLan Kao <acelan.kao@canonical.com>
+
+commit 55ed7d4d1469eafbe3ad7e8fcd44f5af27845a81 upstream.
+
+Add another vendor specific ID for Atheros AR3012 device.
+This chip is wrapped by Lite-On Technology Corp.
+
+output of usb-devices:
+T:  Bus=04 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
+D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
+P:  Vendor=04ca ProdID=3005 Rev=00.02
+S:  Manufacturer=Atheros Communications
+S:  Product=Bluetooth USB Host Controller
+S:  SerialNumber=Alaska Day 2006
+C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
+I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+
+Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
+Signed-off-by: Gustavo Padovan <gustavo@padovan.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/bluetooth/ath3k.c |    2 ++
+ drivers/bluetooth/btusb.c |    1 +
+ 2 files changed, 3 insertions(+)
+
+--- a/drivers/bluetooth/ath3k.c
++++ b/drivers/bluetooth/ath3k.c
+@@ -74,6 +74,7 @@ static struct usb_device_id ath3k_table[
+       { USB_DEVICE(0x0CF3, 0x3004) },
+       { USB_DEVICE(0x0CF3, 0x311D) },
+       { USB_DEVICE(0x13d3, 0x3375) },
++      { USB_DEVICE(0x04CA, 0x3005) },
+       /* Atheros AR5BBU12 with sflash firmware */
+       { USB_DEVICE(0x0489, 0xE02C) },
+@@ -92,6 +93,7 @@ static struct usb_device_id ath3k_blist_
+       { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+       { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
+       { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
++      { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+       { }     /* Terminating entry */
+ };
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -130,6 +130,7 @@ static struct usb_device_id blacklist_ta
+       { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
+       { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
+       { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
++      { USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
+       /* Atheros AR5BBU12 with sflash firmware */
+       { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
diff --git a/queue-3.3/dell-laptop-add-3-machines-that-has-touchpad-led.patch b/queue-3.3/dell-laptop-add-3-machines-that-has-touchpad-led.patch
new file mode 100644 (file)
index 0000000..fe47a62
--- /dev/null
@@ -0,0 +1,56 @@
+From 2a748853ca395c48ea75baa250f7cea6f0f23dbf Mon Sep 17 00:00:00 2001
+From: AceLan Kao <acelan.kao@canonical.com>
+Date: Thu, 17 Nov 2011 15:30:42 +0800
+Subject: dell-laptop: add 3 machines that has touchpad LED
+
+From: AceLan Kao <acelan.kao@canonical.com>
+
+commit 2a748853ca395c48ea75baa250f7cea6f0f23dbf upstream.
+
+Add "Vostro 3555", "Inspiron N311z", and "Inspiron M5110" into quirks,
+so that they could have touchpad LED function work.
+
+Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
+Signed-off-by: Matthew Garrett <mjg@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/dell-laptop.c |   27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+--- a/drivers/platform/x86/dell-laptop.c
++++ b/drivers/platform/x86/dell-laptop.c
+@@ -184,6 +184,33 @@ static struct dmi_system_id __devinitdat
+               },
+               .driver_data = &quirk_dell_vostro_v130,
+       },
++      {
++              .callback = dmi_matched,
++              .ident = "Dell Vostro 3555",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3555"),
++              },
++              .driver_data = &quirk_dell_vostro_v130,
++      },
++      {
++              .callback = dmi_matched,
++              .ident = "Dell Inspiron N311z",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron N311z"),
++              },
++              .driver_data = &quirk_dell_vostro_v130,
++      },
++      {
++              .callback = dmi_matched,
++              .ident = "Dell Inspiron M5110",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron M5110"),
++              },
++              .driver_data = &quirk_dell_vostro_v130,
++      },
+ };
+ static struct calling_interface_buffer *buffer;
diff --git a/queue-3.3/dell-laptop-touchpad-led-should-persist-its-status-after-s3.patch b/queue-3.3/dell-laptop-touchpad-led-should-persist-its-status-after-s3.patch
new file mode 100644 (file)
index 0000000..3206ec3
--- /dev/null
@@ -0,0 +1,31 @@
+From 2d5de9e84928e35b4d9b46b4d8d5dcaac1cff1fa Mon Sep 17 00:00:00 2001
+From: AceLan Kao <acelan.kao@canonical.com>
+Date: Tue, 17 Jan 2012 16:18:06 +0800
+Subject: dell-laptop: touchpad LED should persist its status after S3
+
+From: AceLan Kao <acelan.kao@canonical.com>
+
+commit 2d5de9e84928e35b4d9b46b4d8d5dcaac1cff1fa upstream.
+
+Touchpad LED will not turn on after S3, it will make the touchpad status
+doesn't consist with the LED.
+By adding one flag to let the LED device restore it's status.
+
+Signed-off-by: AceLan Kao <acelan.kao@canonical.com>
+Signed-off-by: Matthew Garrett <mjg@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/dell-laptop.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/platform/x86/dell-laptop.c
++++ b/drivers/platform/x86/dell-laptop.c
+@@ -642,6 +642,7 @@ static void touchpad_led_set(struct led_
+ static struct led_classdev touchpad_led = {
+       .name = "dell-laptop::touchpad",
+       .brightness_set = touchpad_led_set,
++      .flags = LED_CORE_SUSPENDRESUME,
+ };
+ static int __devinit touchpad_led_init(struct device *dev)
diff --git a/queue-3.3/ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch b/queue-3.3/ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
new file mode 100644 (file)
index 0000000..2b989af
--- /dev/null
@@ -0,0 +1,31 @@
+From af1584f570b19b0285e4402a0b54731495d31784 Mon Sep 17 00:00:00 2001
+From: Al Viro <viro@zeniv.linux.org.uk>
+Date: Thu, 12 Apr 2012 20:32:25 -0400
+Subject: ext4: fix endianness breakage in ext4_split_extent_at()
+
+From: Al Viro <viro@zeniv.linux.org.uk>
+
+commit af1584f570b19b0285e4402a0b54731495d31784 upstream.
+
+->ee_len is __le16, so assigning cpu_to_le32() to it is going to do
+Bad Things(tm) on big-endian hosts...
+
+Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
+Cc: Ted Ts'o <tytso@mit.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/ext4/extents.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/ext4/extents.c
++++ b/fs/ext4/extents.c
+@@ -2811,7 +2811,7 @@ static int ext4_split_extent_at(handle_t
+               if (err)
+                       goto fix_extent_len;
+               /* update the extent length and mark as initialized */
+-              ex->ee_len = cpu_to_le32(ee_len);
++              ex->ee_len = cpu_to_le16(ee_len);
+               ext4_ext_try_to_merge(inode, path, ex);
+               err = ext4_ext_dirty(handle, inode, path + depth);
+               goto out;
diff --git a/queue-3.3/kvm-unmap-pages-from-the-iommu-when-slots-are-removed.patch b/queue-3.3/kvm-unmap-pages-from-the-iommu-when-slots-are-removed.patch
new file mode 100644 (file)
index 0000000..0b7601d
--- /dev/null
@@ -0,0 +1,96 @@
+From 32f6daad4651a748a58a3ab6da0611862175722f Mon Sep 17 00:00:00 2001
+From: Alex Williamson <alex.williamson@redhat.com>
+Date: Wed, 11 Apr 2012 09:51:49 -0600
+Subject: KVM: unmap pages from the iommu when slots are removed
+
+From: Alex Williamson <alex.williamson@redhat.com>
+
+commit 32f6daad4651a748a58a3ab6da0611862175722f upstream.
+
+We've been adding new mappings, but not destroying old mappings.
+This can lead to a page leak as pages are pinned using
+get_user_pages, but only unpinned with put_page if they still
+exist in the memslots list on vm shutdown.  A memslot that is
+destroyed while an iommu domain is enabled for the guest will
+therefore result in an elevated page reference count that is
+never cleared.
+
+Additionally, without this fix, the iommu is only programmed
+with the first translation for a gpa.  This can result in
+peer-to-peer errors if a mapping is destroyed and replaced by a
+new mapping at the same gpa as the iommu will still be pointing
+to the original, pinned memory address.
+
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/kvm_host.h |    6 ++++++
+ virt/kvm/iommu.c         |    7 ++++++-
+ virt/kvm/kvm_main.c      |    5 +++--
+ 3 files changed, 15 insertions(+), 3 deletions(-)
+
+--- a/include/linux/kvm_host.h
++++ b/include/linux/kvm_host.h
+@@ -593,6 +593,7 @@ void kvm_free_irq_source_id(struct kvm *
+ #ifdef CONFIG_IOMMU_API
+ int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
++void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
+ int kvm_iommu_map_guest(struct kvm *kvm);
+ int kvm_iommu_unmap_guest(struct kvm *kvm);
+ int kvm_assign_device(struct kvm *kvm,
+@@ -606,6 +607,11 @@ static inline int kvm_iommu_map_pages(st
+       return 0;
+ }
++static inline void kvm_iommu_unmap_pages(struct kvm *kvm,
++                                       struct kvm_memory_slot *slot)
++{
++}
++
+ static inline int kvm_iommu_map_guest(struct kvm *kvm)
+ {
+       return -ENODEV;
+--- a/virt/kvm/iommu.c
++++ b/virt/kvm/iommu.c
+@@ -310,6 +310,11 @@ static void kvm_iommu_put_pages(struct k
+       }
+ }
++void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
++{
++      kvm_iommu_put_pages(kvm, slot->base_gfn, slot->npages);
++}
++
+ static int kvm_iommu_unmap_memslots(struct kvm *kvm)
+ {
+       int idx;
+@@ -320,7 +325,7 @@ static int kvm_iommu_unmap_memslots(stru
+       slots = kvm_memslots(kvm);
+       kvm_for_each_memslot(memslot, slots)
+-              kvm_iommu_put_pages(kvm, memslot->base_gfn, memslot->npages);
++              kvm_iommu_unmap_pages(kvm, memslot);
+       srcu_read_unlock(&kvm->srcu, idx);
+--- a/virt/kvm/kvm_main.c
++++ b/virt/kvm/kvm_main.c
+@@ -873,12 +873,13 @@ skip_lpage:
+       if (r)
+               goto out_free;
+-      /* map the pages in iommu page table */
++      /* map/unmap the pages in iommu page table */
+       if (npages) {
+               r = kvm_iommu_map_pages(kvm, &new);
+               if (r)
+                       goto out_free;
+-      }
++      } else
++              kvm_iommu_unmap_pages(kvm, &old);
+       r = -ENOMEM;
+       slots = kmemdup(kvm->memslots, sizeof(struct kvm_memslots),
index 25675e250e31dd45f91e435331f7d75e95725e5a..6e80fc311d3cbc9e1f85546116d216d71d306782 100644 (file)
@@ -45,3 +45,8 @@ usb-gadget-eliminate-null-pointer-dereference-bugfix.patch
 usb-musb-omap-fix-crash-when-musb-glue-omap-gets-initialized.patch
 usb-musb-omap-fix-the-error-check-for-pm_runtime_get_sync.patch
 pci-add-quirk-for-still-enabled-interrupts-on-intel-sandy-bridge-gpus.patch
+ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
+kvm-unmap-pages-from-the-iommu-when-slots-are-removed.patch
+dell-laptop-add-3-machines-that-has-touchpad-led.patch
+dell-laptop-touchpad-led-should-persist-its-status-after-s3.patch
+bluetooth-add-support-for-atheros.patch