From: Greg Kroah-Hartman Date: Tue, 1 Dec 2020 08:35:51 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.4.247~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4508b41e946e2f8e15c72c121ec2a1407a8fc12;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: usb-core-fix-regression-in-hercules-audio-card.patch --- diff --git a/queue-5.4/series b/queue-5.4/series index 4ec9ade32fd..78a87d2d23c 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -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 index 00000000000..c2cae94a3ba --- /dev/null +++ b/queue-5.4/usb-core-fix-regression-in-hercules-audio-card.patch @@ -0,0 +1,57 @@ +From foo@baz Tue Dec 1 09:29:59 AM CET 2020 +From: Alan Stern +Date: Thu, 19 Nov 2020 12:00:40 -0500 +Subject: USB: core: Fix regression in Hercules audio card + +From: Alan Stern + +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: +Reported-by: Alexander Chalikiopoulos +Signed-off-by: Alan Stern +Link: https://lore.kernel.org/r/20201119170040.GA576844@rowland.harvard.edu +Signed-off-by: Greg Kroah-Hartman +[sudip: use usb_endpoint_blacklist and USB_QUIRK_ENDPOINT_BLACKLIST] +Signed-off-by: Sudip Mukherjee +Signed-off-by: Greg Kroah-Hartman +--- + 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 }, + { }