ide: include WRITE_DMA_FUA_EXT in enlightened 48-bit LBA setup#3062
ide: include WRITE_DMA_FUA_EXT in enlightened 48-bit LBA setup#3062juantian8seattle wants to merge 1 commit intomicrosoft:mainfrom
Conversation
The enlightened HDD path programs high LBA/sector-count registers only for READ_DMA_EXT and WRITE_DMA_EXT. WRITE_DMA_FUA_EXT (0x3D) is also a 48-bit command but was missing from the check, so its high LBA bytes would not be written to the drive registers. Add WRITE_DMA_FUA_EXT to the 48-bit LBA branch condition.
There was a problem hiding this comment.
Pull request overview
This PR fixes a correctness issue in the IDE enlightened INT13 HDD path by ensuring 48-bit LBA register programming also occurs for WRITE_DMA_FUA_EXT, preventing stale high-LBA / sector-count register values from being used during that command.
Changes:
- Extend the 48-bit LBA command check in
enlightened_hdd_command()to includeWRITE_DMA_FUA_EXT.
You can also share your feedback on Copilot code review. Take the survey.
|
Our BIOS never sends this command, does it? |
|
This just makes the enlightened register setup consistent with what |
The enlightened HDD path in
enlightened_hdd_command()programs high LBA/sector-count registers only forREAD_DMA_EXTandWRITE_DMA_EXT.WRITE_DMA_FUA_EXT(0x3D) is also a 48-bit command but was missing from the check, so its high LBA bytes would not be written to the drive registers -- the drive would use stale values.Add
WRITE_DMA_FUA_EXTto the 48-bit LBA branch condition.Fixes #3061