]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Feb 2013 23:08:50 +0000 (15:08 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Feb 2013 23:08:50 +0000 (15:08 -0800)
added patches:
dca-check-against-empty-dca_domains-list-before-unregister-provider.patch
usb-ehci-omap-fix-autoloading-of-module.patch
usb-option-add-and-update-alcatel-modems.patch
usb-option-add-huawei-acm-devices-using-protocol-vendor.patch
usb-option-add-yota-megafon-m100-1-4g-modem.patch
usb-storage-properly-handle-the-endian-issues-of-idproduct.patch
usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch

queue-3.0/dca-check-against-empty-dca_domains-list-before-unregister-provider.patch [new file with mode: 0644]
queue-3.0/series
queue-3.0/usb-ehci-omap-fix-autoloading-of-module.patch [new file with mode: 0644]
queue-3.0/usb-option-add-and-update-alcatel-modems.patch [new file with mode: 0644]
queue-3.0/usb-option-add-huawei-acm-devices-using-protocol-vendor.patch [new file with mode: 0644]
queue-3.0/usb-option-add-yota-megafon-m100-1-4g-modem.patch [new file with mode: 0644]
queue-3.0/usb-storage-properly-handle-the-endian-issues-of-idproduct.patch [new file with mode: 0644]
queue-3.0/usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch [new file with mode: 0644]

diff --git a/queue-3.0/dca-check-against-empty-dca_domains-list-before-unregister-provider.patch b/queue-3.0/dca-check-against-empty-dca_domains-list-before-unregister-provider.patch
new file mode 100644 (file)
index 0000000..fc37a65
--- /dev/null
@@ -0,0 +1,37 @@
+From c419fcfd071cf34ba00f9f65282583772d2655e7 Mon Sep 17 00:00:00 2001
+From: Maciej Sosnowski <maciej.sosnowski@intel.com>
+Date: Wed, 23 May 2012 17:27:07 +0200
+Subject: dca: check against empty dca_domains list before unregister provider
+
+From: Maciej Sosnowski <maciej.sosnowski@intel.com>
+
+commit c419fcfd071cf34ba00f9f65282583772d2655e7 upstream.
+
+When providers get blocked unregister_dca_providers() is called ending up
+with dca_providers and dca_domain lists emptied. Dca should be prevented from
+trying to unregister any provider if dca_domain list is found empty.
+
+Reported-by: Jiang Liu <jiang.liu@huawei.com>
+Tested-by: Gaohuai Han <hangaohuai@huawei.com>
+Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
+Signed-off-by: Dan Williams <djbw@fb.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/dca/dca-core.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/dca/dca-core.c
++++ b/drivers/dca/dca-core.c
+@@ -409,6 +409,11 @@ void unregister_dca_provider(struct dca_
+       spin_lock_irqsave(&dca_lock, flags);
++      if (list_empty(&dca_domains)) {
++              raw_spin_unlock_irqrestore(&dca_lock, flags);
++              return;
++      }
++
+       list_del(&dca->node);
+       pci_rc = dca_pci_rc_from_dev(dev);
index ac0022b97b67a0323a2f0e25e2115049597b2fcd..28c19f7a457f98563c3a156ab46ee5ea9c911137 100644 (file)
@@ -44,3 +44,10 @@ xen-netback-correctly-return-errors-from-netbk_count_requests.patch
 xen-netback-cancel-the-credit-timer-when-taking-the-vif-down.patch
 ipv4-fix-a-bug-in-ping_err.patch
 ipv6-use-a-stronger-hash-for-tcp.patch
+dca-check-against-empty-dca_domains-list-before-unregister-provider.patch
+usb-option-add-and-update-alcatel-modems.patch
+usb-option-add-yota-megafon-m100-1-4g-modem.patch
+usb-option-add-huawei-acm-devices-using-protocol-vendor.patch
+usb-ehci-omap-fix-autoloading-of-module.patch
+usb-storage-properly-handle-the-endian-issues-of-idproduct.patch
+usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch
diff --git a/queue-3.0/usb-ehci-omap-fix-autoloading-of-module.patch b/queue-3.0/usb-ehci-omap-fix-autoloading-of-module.patch
new file mode 100644 (file)
index 0000000..cbe6a54
--- /dev/null
@@ -0,0 +1,32 @@
+From 04753523266629b1cd0518091da1658755787198 Mon Sep 17 00:00:00 2001
+From: Roger Quadros <rogerq@ti.com>
+Date: Thu, 14 Feb 2013 17:08:09 +0200
+Subject: USB: ehci-omap: Fix autoloading of module
+
+From: Roger Quadros <rogerq@ti.com>
+
+commit 04753523266629b1cd0518091da1658755787198 upstream.
+
+The module alias should be "ehci-omap" and not
+"omap-ehci" to match the platform device name.
+The omap-ehci module should now autoload correctly.
+
+Signed-off-by: Roger Quadros <rogerq@ti.com>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/ehci-omap.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/ehci-omap.c
++++ b/drivers/usb/host/ehci-omap.c
+@@ -321,7 +321,7 @@ static const struct hc_driver ehci_omap_
+       .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
+ };
+-MODULE_ALIAS("platform:omap-ehci");
++MODULE_ALIAS("platform:ehci-omap");
+ MODULE_AUTHOR("Texas Instruments, Inc.");
+ MODULE_AUTHOR("Felipe Balbi <felipe.balbi@nokia.com>");
diff --git a/queue-3.0/usb-option-add-and-update-alcatel-modems.patch b/queue-3.0/usb-option-add-and-update-alcatel-modems.patch
new file mode 100644 (file)
index 0000000..74fdc61
--- /dev/null
@@ -0,0 +1,70 @@
+From f8f0302bbcbd1b14655bef29f6996a2152be559d Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Wed, 23 Jan 2013 10:44:36 +0100
+Subject: USB: option: add and update Alcatel modems
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit f8f0302bbcbd1b14655bef29f6996a2152be559d upstream.
+
+Adding three currently unsupported modems based on information
+from .inf driver files:
+
+  Diag  VID_1BBB&PID_0052&MI_00
+  AGPS  VID_1BBB&PID_0052&MI_01
+  VOICE VID_1BBB&PID_0052&MI_02
+  AT    VID_1BBB&PID_0052&MI_03
+  Modem VID_1BBB&PID_0052&MI_05
+  wwan  VID_1BBB&PID_0052&MI_06
+
+  Diag  VID_1BBB&PID_00B6&MI_00
+  AT    VID_1BBB&PID_00B6&MI_01
+  Modem VID_1BBB&PID_00B6&MI_02
+  wwan  VID_1BBB&PID_00B6&MI_03
+
+  Diag  VID_1BBB&PID_00B7&MI_00
+  AGPS  VID_1BBB&PID_00B7&MI_01
+  VOICE VID_1BBB&PID_00B7&MI_02
+  AT    VID_1BBB&PID_00B7&MI_03
+  Modem VID_1BBB&PID_00B7&MI_04
+  wwan  VID_1BBB&PID_00B7&MI_05
+
+Updating the blacklist info for the X060S_X200 and X220_X500D,
+reserving interfaces for a wwan driver, based on
+
+  wwan VID_1BBB&PID_0000&MI_04
+  wwan VID_1BBB&PID_0017&MI_06
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -479,6 +479,7 @@ static const struct option_blacklist_inf
+ static const struct option_blacklist_info alcatel_x200_blacklist = {
+       .sendsetup = BIT(0) | BIT(1),
++      .reserved = BIT(4),
+ };
+ static const struct option_blacklist_info zte_0037_blacklist = {
+@@ -1215,7 +1216,14 @@ static const struct usb_device_id option
+       { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X060S_X200),
+         .driver_info = (kernel_ulong_t)&alcatel_x200_blacklist
+       },
+-      { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D) },
++      { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_X220_X500D),
++        .driver_info = (kernel_ulong_t)&net_intf6_blacklist },
++      { USB_DEVICE(ALCATEL_VENDOR_ID, 0x0052),
++        .driver_info = (kernel_ulong_t)&net_intf6_blacklist },
++      { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b6),
++        .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
++      { USB_DEVICE(ALCATEL_VENDOR_ID, 0x00b7),
++        .driver_info = (kernel_ulong_t)&net_intf5_blacklist },
+       { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L100V),
+         .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) },
diff --git a/queue-3.0/usb-option-add-huawei-acm-devices-using-protocol-vendor.patch b/queue-3.0/usb-option-add-huawei-acm-devices-using-protocol-vendor.patch
new file mode 100644 (file)
index 0000000..08192fb
--- /dev/null
@@ -0,0 +1,49 @@
+From 1f3f687722fd9b29a0c2a85b4844e3b2a3585c63 Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Wed, 13 Feb 2013 23:41:34 +0100
+Subject: USB: option: add Huawei "ACM" devices using protocol = vendor
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit 1f3f687722fd9b29a0c2a85b4844e3b2a3585c63 upstream.
+
+The USB device descriptor of one identity presented by a few
+Huawei morphing devices have serial functions with class codes
+02/02/ff, indicating CDC ACM with a vendor specific protocol. This
+combination is often used for MSFT RNDIS functions, and the CDC
+ACM class driver will therefore ignore such functions.
+
+The CDC ACM class driver cannot support functions with only 2
+endpoints.  The underlying serial functions of these modems are
+also believed to be the same as for alternate device identities
+already supported by the option driver. Letting the same driver
+handle these functions independently of the current identity
+ensures consistent handling and user experience.
+
+There is no need to blacklist these devices in the rndis_host
+driver. Huawei serial functions will either have only 2 endpoints
+or a CDC ACM functional descriptor with bmCapabilities != 0, making
+them correctly ignored as "non RNDIS" by that driver.
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -578,8 +578,12 @@ static const struct usb_device_id option
+       { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
+       { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
+               .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c05, USB_CLASS_COMM, 0x02, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff),
+               .driver_info = (kernel_ulong_t) &net_intf1_blacklist },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff),
+               .driver_info = (kernel_ulong_t) &huawei_cdc12_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff),
diff --git a/queue-3.0/usb-option-add-yota-megafon-m100-1-4g-modem.patch b/queue-3.0/usb-option-add-yota-megafon-m100-1-4g-modem.patch
new file mode 100644 (file)
index 0000000..812f7d0
--- /dev/null
@@ -0,0 +1,60 @@
+From cd565279e51bedee1b2988e84f9b3bef485adeb6 Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Tue, 12 Feb 2013 13:42:24 +0100
+Subject: USB: option: add Yota / Megafon M100-1 4g modem
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit cd565279e51bedee1b2988e84f9b3bef485adeb6 upstream.
+
+Interface layout:
+
+ 00 CD-ROM
+ 01 debug COM port
+ 02 AP control port
+ 03 modem
+ 04 usb-ethernet
+
+Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=480  MxCh= 0
+D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
+P:  Vendor=0408 ProdID=ea42 Rev= 0.00
+S:  Manufacturer=Qualcomm, Incorporated
+S:  Product=Qualcomm CDMA Technologies MSM
+S:  SerialNumber=353568051xxxxxx
+C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
+I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
+E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
+E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
+I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
+E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
+I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
+E:  Ad=84(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
+E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
+I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
+E:  Ad=86(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
+E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/serial/option.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -576,6 +576,8 @@ static const struct usb_device_id option
+       { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLX) },
+       { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GKE) },
+       { USB_DEVICE(QUANTA_VENDOR_ID, QUANTA_PRODUCT_GLE) },
++      { USB_DEVICE(QUANTA_VENDOR_ID, 0xea42),
++              .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff),
+               .driver_info = (kernel_ulong_t) &net_intf1_blacklist },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff),
diff --git a/queue-3.0/usb-storage-properly-handle-the-endian-issues-of-idproduct.patch b/queue-3.0/usb-storage-properly-handle-the-endian-issues-of-idproduct.patch
new file mode 100644 (file)
index 0000000..bea89b9
--- /dev/null
@@ -0,0 +1,39 @@
+From cd060956c5e97931c3909e4a808508469c0bb9f6 Mon Sep 17 00:00:00 2001
+From: fangxiaozhi <huananhu@huawei.com>
+Date: Thu, 7 Feb 2013 15:32:07 +0800
+Subject: USB: storage: properly handle the endian issues of idProduct
+
+From: fangxiaozhi <huananhu@huawei.com>
+
+commit cd060956c5e97931c3909e4a808508469c0bb9f6 upstream.
+
+1. The idProduct is little endian, so make sure its value to be
+compatible with the current CPU. Make no break on big endian processors.
+
+Signed-off-by: fangxiaozhi <huananhu@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/storage/initializers.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/usb/storage/initializers.c
++++ b/drivers/usb/storage/initializers.c
+@@ -147,7 +147,7 @@ static int usb_stor_huawei_dongles_pid(s
+       int idProduct;
+       idesc = &us->pusb_intf->cur_altsetting->desc;
+-      idProduct = us->pusb_dev->descriptor.idProduct;
++      idProduct = le16_to_cpu(us->pusb_dev->descriptor.idProduct);
+       /* The first port is CDROM,
+        * means the dongle in the single port mode,
+        * and a switch command is required to be sent. */
+@@ -169,7 +169,7 @@ int usb_stor_huawei_init(struct us_data
+       int result = 0;
+       if (usb_stor_huawei_dongles_pid(us)) {
+-              if (us->pusb_dev->descriptor.idProduct >= 0x1446)
++              if (le16_to_cpu(us->pusb_dev->descriptor.idProduct) >= 0x1446)
+                       result = usb_stor_huawei_scsi_init(us);
+               else
+                       result = usb_stor_huawei_feature_init(us);
diff --git a/queue-3.0/usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch b/queue-3.0/usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch
new file mode 100644 (file)
index 0000000..92a0ff4
--- /dev/null
@@ -0,0 +1,40 @@
+From 18e03310b5caa6d11c1a8c61b982c37047693fba Mon Sep 17 00:00:00 2001
+From: Josh Boyer <jwboyer@redhat.com>
+Date: Thu, 14 Feb 2013 09:39:09 -0500
+Subject: USB: usb-storage: unusual_devs update for Super TOP SATA bridge
+
+From: Josh Boyer <jwboyer@redhat.com>
+
+commit 18e03310b5caa6d11c1a8c61b982c37047693fba upstream.
+
+The current entry in unusual_cypress.h for the Super TOP SATA bridge devices
+seems to be causing corruption on newer revisions of this device.  This has
+been reported in Arch Linux and Fedora.  The original patch was tested on
+devices with bcdDevice of 1.60, whereas the newer devices report bcdDevice
+as 2.20.  Limit the UNUSUAL_DEV entry to devices less than 2.20.
+
+This fixes https://bugzilla.redhat.com/show_bug.cgi?id=909591
+
+The Arch Forum post on this is here:
+       https://bbs.archlinux.org/viewtopic.php?id=152011
+
+Reported-by: Carsten S. <carsteniq@yahoo.com>
+Tested-by: Carsten S. <carsteniq@yahoo.com>
+Signed-off-by: Josh Boyer <jwboyer@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/storage/unusual_cypress.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/storage/unusual_cypress.h
++++ b/drivers/usb/storage/unusual_cypress.h
+@@ -31,7 +31,7 @@ UNUSUAL_DEV(  0x04b4, 0x6831, 0x0000, 0x
+               "Cypress ISD-300LP",
+               USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0),
+-UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x9999,
++UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x0219,
+               "Super Top",
+               "USB 2.0  SATA BRIDGE",
+               USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0),