From: bugzilla-daemon@bugzilla.kernel.org
To: linux-usb@vger.kernel.org
Subject: [Bug 213839] XHCI 7 port usb hub does not work correctly
Date: Sat, 01 Jan 2022 16:26:22 +0000 [thread overview]
Message-ID: <bug-213839-208809-oAlvmOr6hb@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-213839-208809@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=213839
--- Comment #15 from Alan Stern (stern@rowland.harvard.edu) ---
Created attachment 300199
--> https://bugzilla.kernel.org/attachment.cgi?id=300199&action=edit
Mark child resume requests in hub->event_bits, not hub->change_bits
Congratulations on tracking this down. Later on I will send you a patch to
disable autosuspend for these hubs, if it turns out to be needed. But for now,
I'd like to track down the exact pathway for the problem, if you don't mind.
Can you test the attached patch? It looks like there is a bug in the hub
driver's resume handler. When a resuming hub sees that one of its downstream
ports got a resume request from a child device, it sets a corresponding bit in
the hub->change_bits variable. But this variable is meant for connection
changes, not suspend/resume status changes; which explains why the child hub
ends up getting reset. The bit should be set in the hub->event_bits variable
instead. (If you read through port_event() and hub_event(), you'll see how the
two variables are handled similarly but not exactly the same.)
This bug wasn't noticed before because non-buggy devices don't change their
descriptors, and hub_port_connect_change() is careful to check for cases where
there wasn't a real connection change (i.e., device is still connected, port is
still enabled, and device descriptors haven't changed). But your buggy hub
does change its config descriptor and so it gets reset.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2022-01-01 16:26 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-24 13:41 [Bug 213839] New: XHCI 7 port usb hub does not work correctly bugzilla-daemon
2021-07-24 14:30 ` [Bug 213839] " bugzilla-daemon
2021-07-24 14:45 ` bugzilla-daemon
2021-07-24 15:45 ` bugzilla-daemon
2021-09-15 22:46 ` bugzilla-daemon
2021-12-30 14:30 ` bugzilla-daemon
2021-12-31 16:32 ` bugzilla-daemon
2021-12-31 16:32 ` bugzilla-daemon
2021-12-31 16:35 ` bugzilla-daemon
2022-01-01 1:49 ` bugzilla-daemon
2022-01-01 10:36 ` bugzilla-daemon
2022-01-01 10:37 ` bugzilla-daemon
2022-01-01 10:38 ` bugzilla-daemon
2022-01-01 10:39 ` bugzilla-daemon
2022-01-01 16:26 ` bugzilla-daemon [this message]
2022-01-01 18:46 ` bugzilla-daemon
2022-01-01 18:51 ` bugzilla-daemon
2022-01-01 19:53 ` bugzilla-daemon
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=bug-213839-208809-oAlvmOr6hb@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@bugzilla.kernel.org \
--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;
as well as URLs for NNTP newsgroup(s).