This patch series collects a number of fixes centered around improving the AHCI device.
A number of them used to be tied to as-yet unposted ahci-test patches, but I have separated them out in order to post them standalone and collect feedback. This series as a whole fixes a number of crashes, bugs, and some specification issues that were a problem mostly in unit testing, though several observable problems with real guests are fixed by this series: (1) Byte count after DMA completion fixes Windows 7 hibernate as well as non-ncq BSODs. (2) FIS decomposition fixes prevent corruption when reading from / writing to sectors located beyond the LBA28 limit. (Reported by Eniac Zhang <en...@hp.com>) (3) SDB_FIS construction issues may be partly responsible for unreliable NCQ operation within windows. John Snow (10): ide: add is_write() macro for semantic consistency AHCI: Update byte count after DMA completion AHCI: Add PRD interrupt ide: Correct handling of malformed/short PRDTs AHCI: Rename NCQFIS structure fields AHCI: Fix FIS decomposition ide/ahci: Reorder error cases in handle_cmd ahci: Check cmd_fis[1] more explicitly ahci: factor out FIS decomposition AHCI: Fix SDB FIS Construction dma-helpers.c | 8 ++ hw/ide/ahci.c | 337 +++++++++++++++++++++++++++++++-------------------- hw/ide/ahci.h | 51 ++++++-- hw/ide/core.c | 17 ++- hw/ide/internal.h | 3 + hw/ide/pci.c | 5 +- include/sysemu/dma.h | 1 + 7 files changed, 270 insertions(+), 152 deletions(-) -- 1.9.3