]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Dec 2020 08:35:51 +0000 (09:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Dec 2020 08:35:51 +0000 (09:35 +0100)
added patches:
usb-core-fix-regression-in-hercules-audio-card.patch

queue-5.4/series
queue-5.4/usb-core-fix-regression-in-hercules-audio-card.patch [new file with mode: 0644]

index 4ec9ade32fd0e0fadf6e84caf6d309e43986a381..78a87d2d23c937f9cfd9d10fdd98013029fcc37a 100644 (file)
@@ -88,3 +88,4 @@ x86-mce-do-not-overwrite-no_way_out-if-mce_end-fails.patch
 x86-speculation-fix-prctl-when-spectre_v2_user-seccomp-prctl-ibpb.patch
 x86-resctrl-remove-superfluous-kernfs_get-calls-to-prevent-refcount-leak.patch
 x86-resctrl-add-necessary-kernfs_put-calls-to-prevent-refcount-leak.patch
+usb-core-fix-regression-in-hercules-audio-card.patch
diff --git a/queue-5.4/usb-core-fix-regression-in-hercules-audio-card.patch b/queue-5.4/usb-core-fix-regression-in-hercules-audio-card.patch
new file mode 100644 (file)
index 0000000..c2cae94
--- /dev/null
@@ -0,0 +1,57 @@
+From foo@baz Tue Dec  1 09:29:59 AM CET 2020
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Thu, 19 Nov 2020 12:00:40 -0500
+Subject: USB: core: Fix regression in Hercules audio card
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit 184eead057cc7e803558269babc1f2cfb9113ad1 upstream
+
+Commit 3e4f8e21c4f2 ("USB: core: fix check for duplicate endpoints")
+aimed to make the USB stack more reliable by detecting and skipping
+over endpoints that are duplicated between interfaces.  This caused a
+regression for a Hercules audio card (reported as Bugzilla #208357),
+which contains such non-compliant duplications.  Although the
+duplications are harmless, skipping the valid endpoints prevented the
+device from working.
+
+This patch fixes the regression by adding ENDPOINT_IGNORE quirks for
+the Hercules card, telling the kernel to ignore the invalid duplicate
+endpoints and thereby allowing the valid endpoints to be used as
+intended.
+
+Fixes: 3e4f8e21c4f2 ("USB: core: fix check for duplicate endpoints")
+CC: <stable@vger.kernel.org>
+Reported-by: Alexander Chalikiopoulos <bugzilla.kernel.org@mrtoasted.com>
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Link: https://lore.kernel.org/r/20201119170040.GA576844@rowland.harvard.edu
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+[sudip: use usb_endpoint_blacklist and USB_QUIRK_ENDPOINT_BLACKLIST]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/quirks.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -348,6 +348,10 @@ static const struct usb_device_id usb_qu
+       /* Guillemot Webcam Hercules Dualpix Exchange*/
+       { USB_DEVICE(0x06f8, 0x3005), .driver_info = USB_QUIRK_RESET_RESUME },
++      /* Guillemot Hercules DJ Console audio card (BZ 208357) */
++      { USB_DEVICE(0x06f8, 0xb000), .driver_info =
++                      USB_QUIRK_ENDPOINT_BLACKLIST },
++
+       /* Midiman M-Audio Keystation 88es */
+       { USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME },
+@@ -525,6 +529,8 @@ static const struct usb_device_id usb_am
+  * Matched for devices with USB_QUIRK_ENDPOINT_BLACKLIST.
+  */
+ static const struct usb_device_id usb_endpoint_blacklist[] = {
++      { USB_DEVICE_INTERFACE_NUMBER(0x06f8, 0xb000, 5), .driver_info = 0x01 },
++      { USB_DEVICE_INTERFACE_NUMBER(0x06f8, 0xb000, 5), .driver_info = 0x81 },
+       { USB_DEVICE_INTERFACE_NUMBER(0x0926, 0x0202, 1), .driver_info = 0x85 },
+       { USB_DEVICE_INTERFACE_NUMBER(0x0926, 0x0208, 1), .driver_info = 0x85 },
+       { }