Conversation
Signed-off-by: Han, Chenxi <chehan@qti.qualcomm.com>
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.
Summary
This change fixes multiple issues in the serial driver that caused Windows Dial‑Up Networking to fail with error 619.
Error Description
Repro: Initiate a dial-up connection against the Qualcomm modem on Windows Settings. The error 619 will pop up:
Root Cause Analysis (RCA)
Wrong output mask for WAIT_ON_MASK
The driver completed
IOCTL_SERIAL_WAIT_ON_MASKwith an incorrect output event mask, so the application never observedSERIAL_EV_RXFLAG. As a result, the dial‑up flow could not proceed.Queue state mis‑reporting rejected new WOM requests
The logic used to determine whether the framework queue is empty was incorrect. Under certain race conditions, the application had already acknowledged the completion of the previous WAIT_ON_MASK request, but the driver still perceived the queue as non‑empty. As a result, the application restarted the connection by purging the RX buffer, which made all subsequent WAIT_ON_MASK requests were continuously rejected.
Potentially incorrect return status for immediate timeout
Immediate timeout paths (Type 4/6) returned
STATUS_TIMEOUT. The upper layer may interpreted this as a terminal failure.Validation
Validated with Qualcomm modem on Windows 11 24h2, the error 619 is gone.