diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2022-12-22 21:52:31 +0000 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2023-01-18 14:22:26 -0500 |
commit | bd7b54a3c4f12793f855a7e2885b318edba7b06e (patch) | |
tree | e4c6414a1880d803241e30f0d24f14da9a4b8f8a /apps/plugins/lib | |
parent | 969e1ef6cda10aaf1affb07a953ec1b597de24e0 (diff) | |
download | rockbox-bd7b54a3c4f12793f855a7e2885b318edba7b06e.tar.gz rockbox-bd7b54a3c4f12793f855a7e2885b318edba7b06e.zip |
usb: Attempt to handle overlapped control requests in legacy drivers
It seems connecting an iPod Video to a Mac triggers the null
request check, resulting in a panic. Ignoring the error with
a bare return "fixes" it and allows the iPod to connect. This
isn't ideal though, because it could silently introduce bugs
on other targets.
The likely cause of this is the host sending control requests
too fast, or a driver problem (the Video uses the ARC driver,
which is still on the legacy interface), with multiple requests
getting queued at once. Since the USB core expects to deal with
only one request at a time, the second response trips the check.
Try to handle this situation a bit more gracefully by detecting
overlapped requests and returning a STALL to the host when it
occurs. At this point the USB stack is able to safely handle a
new request.
Link: https://forums.rockbox.org/index.php/topic,54414.0.html
Change-Id: I9a2b7e35620ff540ebdb39f81671377062a4917d
Diffstat (limited to 'apps/plugins/lib')
0 files changed, 0 insertions, 0 deletions