Do not change state before claiming interface#5
Open
asahtik wants to merge 1 commit into
Open
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adjusts the Windows WinUSB backend’s interface/altsetting handling so that endpoint state is not cleared until after an interface is successfully claimed (or an altsetting is successfully set), preventing failed claims from disrupting concurrent users of the same device.
Changes:
- Move endpoint-array cleanup/reset into
windows_assign_endpoints()so it only occurs when endpoint assignment is actually performed. - Remove pre-claim and pre-altsetting endpoint clearing from
winusb_claim_interface()andwinusb_set_interface_altsetting().
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
533
to
537
| usbi_err(HANDLE_CTX(dev_handle), "interface %d out of range for device", iface); | ||
| r = LIBUSB_ERROR_NOT_FOUND; | ||
| goto end; | ||
| } | ||
| if_desc = &conf_desc->interface[iface].altsetting[altsetting]; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Purpose
On Windows, when claiming an already claimed interface (from a different dev handle) endpoints got cleared even though the claim failed. This caused issues with concurrent accesses. This PR moves clearing to
windows_assign_endpoints.Specification
None / not applicable
Dependencies & Potential Impact
None / not applicable
Deployment Plan
None / not applicable
Testing & Validation
None / not applicable