From: Greg KH <gregkh@linuxfoundation.org>
To: "Johannes Brüderl" <johannes.bruederl@gmail.com>
Cc: linux-usb@vger.kernel.org
Subject: Re: [PATCH] usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor
Date: Sun, 7 Dec 2025 09:15:23 +0900 [thread overview]
Message-ID: <2025120708-header-startling-ffaf@gregkh> (raw)
In-Reply-To: <20251207000007.11631-1-johannes.bruederl@gmail.com>
On Sun, Dec 07, 2025 at 01:00:07AM +0100, Johannes Brüderl wrote:
> Add USB_QUIRK_NO_BOS quirk flag to skip requesting the BOS descriptor
> for devices that cannot handle it.
>
> Add Elgato 4K X (0fd9:009b) to the quirk table. This device hangs when
> the BOS descriptor is requested at SuperSpeed Plus (10Gbps).
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=220027
> Signed-off-by: Johannes Brüderl <johannes.bruederl@gmail.com>
> ---
> Before (device hangs at SuperSpeed Plus, then re-enumerates at lower speed
> with different product ID 009c):
>
> [ 3.284990] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number 2 using xhci_hcd
> [ 8.574542] usb 2-2: unable to get BOS descriptor or descriptor too short
> [ 8.600018] usb 2-2: unable to read config index 0 descriptor/start: -71
> [ 8.600027] usb 2-2: can't read configurations, error -71
> [ 8.998412] usb 2-2: Device not responding to setup address.
> [ 9.215157] usb 2-2: Device not responding to setup address.
> [ 9.422737] usb 2-2: device not accepting address 3, error -71
> [ 10.990897] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
> [ 11.065869] usb 2-2: LPM exit latency is zeroed, disabling LPM.
> [ 11.152244] usb 2-2: New USB device found, idVendor=0fd9, idProduct=009c
>
> After (device enumerates correctly at SuperSpeed Plus):
>
> [ 3.297159] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number 2 using xhci_hcd
> [ 3.354248] usb 2-2: skipping BOS descriptor
This feels like a USB spec violation :(
> [ 3.432917] usb 2-2: New USB device found, idVendor=0fd9, idProduct=009b
> [ 3.432927] usb 2-2: Product: Elgato 4K X
>
> drivers/usb/core/config.c | 5 +++++
> drivers/usb/core/quirks.c | 3 +++
> include/linux/usb/quirks.h | 3 +++
> 3 files changed, 11 insertions(+)
>
> diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
> index baf5bc844b6f..8fa3a486d038 100644
> --- a/drivers/usb/core/config.c
> +++ b/drivers/usb/core/config.c
> @@ -1040,6 +1040,11 @@ int usb_get_bos_descriptor(struct usb_device *dev)
> __u8 cap_type;
> int ret;
>
> + if (dev->quirks & USB_QUIRK_NO_BOS) {
> + dev_dbg(ddev, "skipping BOS descriptor\n");
> + return 0;
> + }
What is the downside of claiming to successfully reading the BOS
descriptor, yet not having done that at all? Can we tear down the
device properly? Show the information correctly through userspace
tools? Shouldn't we return something like -ENOMSG instead?
thanks,
greg k-h
next prev parent reply other threads:[~2025-12-07 0:15 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-07 0:00 [PATCH] usb: core: add USB_QUIRK_NO_BOS for devices that hang on BOS descriptor Johannes Brüderl
2025-12-07 0:15 ` Greg KH [this message]
2025-12-07 1:20 ` [PATCH v2] " Johannes Brüderl
2025-12-07 6:19 ` Lars Melin
2025-12-07 9:02 ` [PATCH v3 1/1] " Johannes Brüderl
2026-01-07 16:06 ` Greg KH
2025-12-07 7:40 ` [PATCH v2] " Michal Pecio
2025-12-07 9:22 ` Johannes Brüderl
2025-12-07 9:45 ` Michal Pecio
2025-12-07 10:47 ` Johannes Brüderl
2025-12-07 11:00 ` Greg KH
2025-12-07 21:12 ` Greg KH
2025-12-07 22:06 ` Michal Pecio
2025-12-08 8:58 ` Oliver Neukum
2025-12-08 20:46 ` Greg KH
2025-12-28 12:54 ` Johannes Brüderl
2025-12-28 13:18 ` Greg KH
2025-12-07 0:37 ` [PATCH] " Michal Pecio
2025-12-07 0:59 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2025120708-header-startling-ffaf@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=johannes.bruederl@gmail.com \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox