virtio: avoid spurious config change interrupt on DRIVER_OK - #4226
Merged
Steven Malis (smalis-msft) merged 3 commits intoAug 17, 2026
Merged
Conversation
|
This PR modifies files containing For more on why we check whole files, instead of just diffs, check out the Rustonomicon |
Contributor
Author
|
@microsoft-github-policy-service agree |
Contributor
|
Thanks for your submission, someone will take a look soon! Don't worry about any SNP test failures, they're having some issues right now. |
John Starks (jstarks)
approved these changes
Aug 17, 2026
Steven Malis (smalis-msft)
enabled auto-merge (squash)
August 17, 2026 20:28
Steven Malis (smalis-msft)
merged commit Aug 17, 2026
62b9ca5
into
microsoft:main
100 of 104 checks passed
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
Fixes Issue #4049 - "virtio-pci: spurious configuration-change interrupt (ISR bit 1) raised at DRIVER_OK"
The VirtIO transport currently updates
config_generationwhen thedevice reaches
DRIVER_OK.The
DRIVER_OKtransition does not represent a change to thedevice-specific configuration space. However, updating the generation
during this transition also causes a configuration-change interrupt to
be signaled during device initialization.
This change removes that spurious update and adds regression coverage
for MMIO and PCI transports.
Changes
update_config_generation()from theDRIVER_OKcompletion path.FEATURES_OKconfig-generation update.DRIVER_OKdoes not generate a configuration-changeinterrupt for MMIO.
DRIVER_OKdoes not generate a configuration-changeinterrupt for PCI.
initialization interrupt.
Testing
cargo fmt --check -p virtio— passedgit diff --check— passedcargo test -p virtio— unable to execute locally because theWindows SDK required by the MSVC toolchain is unavailable
(
kernel32.lib).CI validation is therefore required for the full test suite.