Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

usb: Update libusbohci submodule to 6290ced #666

Merged
merged 1 commit into from
May 4, 2024

Conversation

thrimbor
Copy link
Member

@thrimbor thrimbor commented May 4, 2024

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 if get_ticks got inlined.

@Ryzee119 Ryzee119 merged commit 86de328 into XboxDev:master May 4, 2024
5 of 6 checks passed
@thrimbor thrimbor deleted the usb_lto_fix branch May 7, 2024 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

SDL_GameControllerOpen fails to open controller with LTO enabled
2 participants