usb: Update libusbohci submodule to 6290ced #666
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #624 by including the changes from XboxDev/libusbohci#1
Description from that PR is below:
The problem occurs in the following code, which waits on a change in
utr->bIsTransferDone
by the IRQ handler:https://github.com/XboxDev/libusbohci/blob/b9f167224ea092241ef6ec4d06cea819dfdda0a5/src_core/usb_core.c#L321-L331
Because
utr->bIsTransferDone
is not marked volatile, the compiler can assume that its value never changes after the first comparison as it is not modified in the loop. Interestingly, this only caused defective code to be emitted ifget_ticks
got inlined.