From: Greg Kroah-Hartman Date: Mon, 31 Aug 2020 12:30:45 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v4.4.235~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=359401cf45b4cb768f7cbb6e0013c1a8e88620a5;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: usb-host-ohci-exynos-fix-error-handling-in-exynos_ohci_probe.patch usb-ignore-uas-for-jmicron-jms567-ata-atapi-bridge.patch usb-quirks-add-no-lpm-quirk-for-another-raydium-touchscreen.patch usb-storage-add-unusual_uas-entry-for-sony-psz-drives.patch usb-uas-add-quirk-for-pny-pro-elite.patch usb-yurex-fix-bad-gfp-argument.patch --- diff --git a/queue-4.4/series b/queue-4.4/series index aa2dfda8ca6..c43c376a269 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -51,3 +51,9 @@ xen-uses-irqdesc-irq_data_common-handler_data-to-store-a-per-interrupt-xen-data- xhci-do-warm-reset-when-both-cas-and-xdev_resume-are-set.patch pm-sleep-core-fix-the-handling-of-pending-runtime-resume-requests.patch device-property-fix-the-secondary-firmware-node-handling-in-set_primary_fwnode.patch +usb-yurex-fix-bad-gfp-argument.patch +usb-uas-add-quirk-for-pny-pro-elite.patch +usb-quirks-add-no-lpm-quirk-for-another-raydium-touchscreen.patch +usb-ignore-uas-for-jmicron-jms567-ata-atapi-bridge.patch +usb-host-ohci-exynos-fix-error-handling-in-exynos_ohci_probe.patch +usb-storage-add-unusual_uas-entry-for-sony-psz-drives.patch diff --git a/queue-4.4/usb-host-ohci-exynos-fix-error-handling-in-exynos_ohci_probe.patch b/queue-4.4/usb-host-ohci-exynos-fix-error-handling-in-exynos_ohci_probe.patch new file mode 100644 index 00000000000..2690837cb0e --- /dev/null +++ b/queue-4.4/usb-host-ohci-exynos-fix-error-handling-in-exynos_ohci_probe.patch @@ -0,0 +1,41 @@ +From 1d4169834628d18b2392a2da92b7fbf5e8e2ce89 Mon Sep 17 00:00:00 2001 +From: Tang Bin +Date: Wed, 26 Aug 2020 22:49:31 +0800 +Subject: usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe() + +From: Tang Bin + +commit 1d4169834628d18b2392a2da92b7fbf5e8e2ce89 upstream. + +If the function platform_get_irq() failed, the negative value +returned will not be detected here. So fix error handling in +exynos_ohci_probe(). And when get irq failed, the function +platform_get_irq() logs an error message, so remove redundant +message here. + +Fixes: 62194244cf87 ("USB: Add Samsung Exynos OHCI diver") +Signed-off-by: Zhang Shengju +Cc: stable +Signed-off-by: Tang Bin +Reviewed-by: Krzysztof Kozlowski +Link: https://lore.kernel.org/r/20200826144931.1828-1-tangbin@cmss.chinamobile.com +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/ohci-exynos.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/drivers/usb/host/ohci-exynos.c ++++ b/drivers/usb/host/ohci-exynos.c +@@ -166,9 +166,8 @@ skip_phy: + hcd->rsrc_len = resource_size(res); + + irq = platform_get_irq(pdev, 0); +- if (!irq) { +- dev_err(&pdev->dev, "Failed to get IRQ\n"); +- err = -ENODEV; ++ if (irq < 0) { ++ err = irq; + goto fail_io; + } + diff --git a/queue-4.4/usb-ignore-uas-for-jmicron-jms567-ata-atapi-bridge.patch b/queue-4.4/usb-ignore-uas-for-jmicron-jms567-ata-atapi-bridge.patch new file mode 100644 index 00000000000..e1079a49f9f --- /dev/null +++ b/queue-4.4/usb-ignore-uas-for-jmicron-jms567-ata-atapi-bridge.patch @@ -0,0 +1,37 @@ +From 9aa37788e7ebb3f489fb4b71ce07adadd444264a Mon Sep 17 00:00:00 2001 +From: Cyril Roelandt +Date: Tue, 25 Aug 2020 23:22:31 +0200 +Subject: USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge + +From: Cyril Roelandt + +commit 9aa37788e7ebb3f489fb4b71ce07adadd444264a upstream. + +This device does not support UAS properly and a similar entry already +exists in drivers/usb/storage/unusual_uas.h. Without this patch, +storage_probe() defers the handling of this device to UAS, which cannot +handle it either. + +Tested-by: Brice Goglin +Fixes: bc3bdb12bbb3 ("usb-storage: Disable UAS on JMicron SATA enclosure") +Acked-by: Alan Stern +CC: +Signed-off-by: Cyril Roelandt +Link: https://lore.kernel.org/r/20200825212231.46309-1-tipecaml@gmail.com +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_devs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -2213,7 +2213,7 @@ UNUSUAL_DEV( 0x357d, 0x7788, 0x0114, 0x + "JMicron", + "USB to ATA/ATAPI Bridge", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, +- US_FL_BROKEN_FUA ), ++ US_FL_BROKEN_FUA | US_FL_IGNORE_UAS ), + + /* Reported by Andrey Rahmatullin */ + UNUSUAL_DEV( 0x4102, 0x1020, 0x0100, 0x0100, diff --git a/queue-4.4/usb-quirks-add-no-lpm-quirk-for-another-raydium-touchscreen.patch b/queue-4.4/usb-quirks-add-no-lpm-quirk-for-another-raydium-touchscreen.patch new file mode 100644 index 00000000000..afa3de90045 --- /dev/null +++ b/queue-4.4/usb-quirks-add-no-lpm-quirk-for-another-raydium-touchscreen.patch @@ -0,0 +1,38 @@ +From 5967116e8358899ebaa22702d09b0af57fef23e1 Mon Sep 17 00:00:00 2001 +From: Kai-Heng Feng +Date: Fri, 31 Jul 2020 13:16:20 +0800 +Subject: USB: quirks: Add no-lpm quirk for another Raydium touchscreen + +From: Kai-Heng Feng + +commit 5967116e8358899ebaa22702d09b0af57fef23e1 upstream. + +There's another Raydium touchscreen needs the no-lpm quirk: +[ 1.339149] usb 1-9: New USB device found, idVendor=2386, idProduct=350e, bcdDevice= 0.00 +[ 1.339150] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=0 +[ 1.339151] usb 1-9: Product: Raydium Touch System +[ 1.339152] usb 1-9: Manufacturer: Raydium Corporation +... +[ 6.450497] usb 1-9: can't set config #1, error -110 + +BugLink: https://bugs.launchpad.net/bugs/1889446 +Signed-off-by: Kai-Heng Feng +Cc: stable +Link: https://lore.kernel.org/r/20200731051622.28643-1-kai.heng.feng@canonical.com +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/quirks.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/core/quirks.c ++++ b/drivers/usb/core/quirks.c +@@ -299,6 +299,8 @@ static const struct usb_device_id usb_qu + + { USB_DEVICE(0x2386, 0x3119), .driver_info = USB_QUIRK_NO_LPM }, + ++ { USB_DEVICE(0x2386, 0x350e), .driver_info = USB_QUIRK_NO_LPM }, ++ + /* DJI CineSSD */ + { USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM }, + diff --git a/queue-4.4/usb-storage-add-unusual_uas-entry-for-sony-psz-drives.patch b/queue-4.4/usb-storage-add-unusual_uas-entry-for-sony-psz-drives.patch new file mode 100644 index 00000000000..be8fdb20c88 --- /dev/null +++ b/queue-4.4/usb-storage-add-unusual_uas-entry-for-sony-psz-drives.patch @@ -0,0 +1,42 @@ +From 20934c0de13b49a072fb1e0ca79fe0fe0e40eae5 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Wed, 26 Aug 2020 10:32:29 -0400 +Subject: usb: storage: Add unusual_uas entry for Sony PSZ drives +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Alan Stern + +commit 20934c0de13b49a072fb1e0ca79fe0fe0e40eae5 upstream. + +The PSZ-HA* family of USB disk drives from Sony can't handle the +REPORT OPCODES command when using the UAS protocol. This patch adds +an appropriate quirks entry. + +Reported-and-tested-by: Till Dörges +Signed-off-by: Alan Stern +CC: +Link: https://lore.kernel.org/r/20200826143229.GB400430@rowland.harvard.edu +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_uas.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/usb/storage/unusual_uas.h ++++ b/drivers/usb/storage/unusual_uas.h +@@ -40,6 +40,13 @@ + * and don't forget to CC: the USB development list + */ + ++/* Reported-by: Till Dörges */ ++UNUSUAL_DEV(0x054c, 0x087d, 0x0000, 0x9999, ++ "Sony", ++ "PSZ-HA*", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_NO_REPORT_OPCODES), ++ + /* Reported-by: Julian Groß */ + UNUSUAL_DEV(0x059f, 0x105f, 0x0000, 0x9999, + "LaCie", diff --git a/queue-4.4/usb-uas-add-quirk-for-pny-pro-elite.patch b/queue-4.4/usb-uas-add-quirk-for-pny-pro-elite.patch new file mode 100644 index 00000000000..45335e51a18 --- /dev/null +++ b/queue-4.4/usb-uas-add-quirk-for-pny-pro-elite.patch @@ -0,0 +1,39 @@ +From 9a469bc9f32dd33c7aac5744669d21a023a719cd Mon Sep 17 00:00:00 2001 +From: Thinh Nguyen +Date: Tue, 18 Aug 2020 19:27:47 -0700 +Subject: usb: uas: Add quirk for PNY Pro Elite + +From: Thinh Nguyen + +commit 9a469bc9f32dd33c7aac5744669d21a023a719cd upstream. + +PNY Pro Elite USB 3.1 Gen 2 device (SSD) doesn't respond to ATA_12 +pass-through command (i.e. it just hangs). If it doesn't support this +command, it should respond properly to the host. Let's just add a quirk +to be able to move forward with other operations. + +Cc: stable@vger.kernel.org +Signed-off-by: Thinh Nguyen +Link: https://lore.kernel.org/r/2b0585228b003eedcc82db84697b31477df152e0.1597803605.git.thinhn@synopsys.com +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_uas.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/usb/storage/unusual_uas.h ++++ b/drivers/usb/storage/unusual_uas.h +@@ -155,6 +155,13 @@ UNUSUAL_DEV(0x152d, 0x0578, 0x0000, 0x99 + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BROKEN_FUA), + ++/* Reported-by: Thinh Nguyen */ ++UNUSUAL_DEV(0x154b, 0xf00d, 0x0000, 0x9999, ++ "PNY", ++ "Pro Elite SSD", ++ USB_SC_DEVICE, USB_PR_DEVICE, NULL, ++ US_FL_NO_ATA_1X), ++ + /* Reported-by: Hans de Goede */ + UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999, + "VIA", diff --git a/queue-4.4/usb-yurex-fix-bad-gfp-argument.patch b/queue-4.4/usb-yurex-fix-bad-gfp-argument.patch new file mode 100644 index 00000000000..376b66debf9 --- /dev/null +++ b/queue-4.4/usb-yurex-fix-bad-gfp-argument.patch @@ -0,0 +1,72 @@ +From f176ede3a3bde5b398a6777a7f9ff091baa2d3ff Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Mon, 10 Aug 2020 14:29:54 -0400 +Subject: USB: yurex: Fix bad gfp argument + +From: Alan Stern + +commit f176ede3a3bde5b398a6777a7f9ff091baa2d3ff upstream. + +The syzbot fuzzer identified a bug in the yurex driver: It passes +GFP_KERNEL as a memory-allocation flag to usb_submit_urb() at a time +when its state is TASK_INTERRUPTIBLE, not TASK_RUNNING: + +do not call blocking ops when !TASK_RUNNING; state=1 set at [<00000000370c7c68>] prepare_to_wait+0xb1/0x2a0 kernel/sched/wait.c:247 +WARNING: CPU: 1 PID: 340 at kernel/sched/core.c:7253 __might_sleep+0x135/0x190 +kernel/sched/core.c:7253 +Kernel panic - not syncing: panic_on_warn set ... +CPU: 1 PID: 340 Comm: syz-executor677 Not tainted 5.8.0-syzkaller #0 +Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google +01/01/2011 +Call Trace: + __dump_stack lib/dump_stack.c:77 [inline] + dump_stack+0xf6/0x16e lib/dump_stack.c:118 + panic+0x2aa/0x6e1 kernel/panic.c:231 + __warn.cold+0x20/0x50 kernel/panic.c:600 + report_bug+0x1bd/0x210 lib/bug.c:198 + handle_bug+0x41/0x80 arch/x86/kernel/traps.c:234 + exc_invalid_op+0x14/0x40 arch/x86/kernel/traps.c:254 + asm_exc_invalid_op+0x12/0x20 arch/x86/include/asm/idtentry.h:536 +RIP: 0010:__might_sleep+0x135/0x190 kernel/sched/core.c:7253 +Code: 65 48 8b 1c 25 40 ef 01 00 48 8d 7b 10 48 89 fe 48 c1 ee 03 80 3c 06 00 75 +2b 48 8b 73 10 48 c7 c7 e0 9e 06 86 e8 ed 12 f6 ff <0f> 0b e9 46 ff ff ff e8 1f +b2 4b 00 e9 29 ff ff ff e8 15 b2 4b 00 +RSP: 0018:ffff8881cdb77a28 EFLAGS: 00010282 +RAX: 0000000000000000 RBX: ffff8881c6458000 RCX: 0000000000000000 +RDX: ffff8881c6458000 RSI: ffffffff8129ec93 RDI: ffffed1039b6ef37 +RBP: ffffffff86fdade2 R08: 0000000000000001 R09: ffff8881db32f54f +R10: 0000000000000000 R11: 0000000030343354 R12: 00000000000001f2 +R13: 0000000000000000 R14: 0000000000000068 R15: ffffffff83c1b1aa + slab_pre_alloc_hook.constprop.0+0xea/0x200 mm/slab.h:498 + slab_alloc_node mm/slub.c:2816 [inline] + slab_alloc mm/slub.c:2900 [inline] + kmem_cache_alloc_trace+0x46/0x220 mm/slub.c:2917 + kmalloc include/linux/slab.h:554 [inline] + dummy_urb_enqueue+0x7a/0x880 drivers/usb/gadget/udc/dummy_hcd.c:1251 + usb_hcd_submit_urb+0x2b2/0x22d0 drivers/usb/core/hcd.c:1547 + usb_submit_urb+0xb4e/0x13e0 drivers/usb/core/urb.c:570 + yurex_write+0x3ea/0x820 drivers/usb/misc/yurex.c:495 + +This patch changes the call to use GFP_ATOMIC instead of GFP_KERNEL. + +Reported-and-tested-by: syzbot+c2c3302f9c601a4b1be2@syzkaller.appspotmail.com +Signed-off-by: Alan Stern +CC: +Link: https://lore.kernel.org/r/20200810182954.GB307778@rowland.harvard.edu +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/misc/yurex.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/misc/yurex.c ++++ b/drivers/usb/misc/yurex.c +@@ -510,7 +510,7 @@ static ssize_t yurex_write(struct file * + prepare_to_wait(&dev->waitq, &wait, TASK_INTERRUPTIBLE); + dev_dbg(&dev->interface->dev, "%s - submit %c\n", __func__, + dev->cntl_buffer[0]); +- retval = usb_submit_urb(dev->cntl_urb, GFP_KERNEL); ++ retval = usb_submit_urb(dev->cntl_urb, GFP_ATOMIC); + if (retval >= 0) + timeout = schedule_timeout(YUREX_WRITE_TIMEOUT); + finish_wait(&dev->waitq, &wait);