From: Greg Kroah-Hartman Date: Tue, 26 Feb 2013 23:08:50 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.7.10~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=93ec2a7c2755d667e6b525c73b586228f783361b;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches 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 --- 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 index 00000000000..fc37a65b94d --- /dev/null +++ b/queue-3.0/dca-check-against-empty-dca_domains-list-before-unregister-provider.patch @@ -0,0 +1,37 @@ +From c419fcfd071cf34ba00f9f65282583772d2655e7 Mon Sep 17 00:00:00 2001 +From: Maciej Sosnowski +Date: Wed, 23 May 2012 17:27:07 +0200 +Subject: dca: check against empty dca_domains list before unregister provider + +From: Maciej Sosnowski + +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 +Tested-by: Gaohuai Han +Signed-off-by: Maciej Sosnowski +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.0/series b/queue-3.0/series index ac0022b97b6..28c19f7a457 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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 index 00000000000..cbe6a5435dd --- /dev/null +++ b/queue-3.0/usb-ehci-omap-fix-autoloading-of-module.patch @@ -0,0 +1,32 @@ +From 04753523266629b1cd0518091da1658755787198 Mon Sep 17 00:00:00 2001 +From: Roger Quadros +Date: Thu, 14 Feb 2013 17:08:09 +0200 +Subject: USB: ehci-omap: Fix autoloading of module + +From: Roger Quadros + +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 +Acked-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + 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 "); + 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 index 00000000000..74fdc61b316 --- /dev/null +++ b/queue-3.0/usb-option-add-and-update-alcatel-modems.patch @@ -0,0 +1,70 @@ +From f8f0302bbcbd1b14655bef29f6996a2152be559d Mon Sep 17 00:00:00 2001 +From: Bjørn Mork +Date: Wed, 23 Jan 2013 10:44:36 +0100 +Subject: USB: option: add and update Alcatel modems + +From: Bjørn Mork + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..08192fb3388 --- /dev/null +++ b/queue-3.0/usb-option-add-huawei-acm-devices-using-protocol-vendor.patch @@ -0,0 +1,49 @@ +From 1f3f687722fd9b29a0c2a85b4844e3b2a3585c63 Mon Sep 17 00:00:00 2001 +From: Bjørn Mork +Date: Wed, 13 Feb 2013 23:41:34 +0100 +Subject: USB: option: add Huawei "ACM" devices using protocol = vendor + +From: Bjørn Mork + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..812f7d09e36 --- /dev/null +++ b/queue-3.0/usb-option-add-yota-megafon-m100-1-4g-modem.patch @@ -0,0 +1,60 @@ +From cd565279e51bedee1b2988e84f9b3bef485adeb6 Mon Sep 17 00:00:00 2001 +From: Bjørn Mork +Date: Tue, 12 Feb 2013 13:42:24 +0100 +Subject: USB: option: add Yota / Megafon M100-1 4g modem + +From: Bjørn Mork + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..bea89b92543 --- /dev/null +++ b/queue-3.0/usb-storage-properly-handle-the-endian-issues-of-idproduct.patch @@ -0,0 +1,39 @@ +From cd060956c5e97931c3909e4a808508469c0bb9f6 Mon Sep 17 00:00:00 2001 +From: fangxiaozhi +Date: Thu, 7 Feb 2013 15:32:07 +0800 +Subject: USB: storage: properly handle the endian issues of idProduct + +From: fangxiaozhi + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..92a0ff44d02 --- /dev/null +++ b/queue-3.0/usb-usb-storage-unusual_devs-update-for-super-top-sata-bridge.patch @@ -0,0 +1,40 @@ +From 18e03310b5caa6d11c1a8c61b982c37047693fba Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Thu, 14 Feb 2013 09:39:09 -0500 +Subject: USB: usb-storage: unusual_devs update for Super TOP SATA bridge + +From: Josh Boyer + +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. +Tested-by: Carsten S. +Signed-off-by: Josh Boyer +Signed-off-by: Greg Kroah-Hartman + +--- + 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),