This series was written mostly by Paolo Bonzini to do two things: 1. Unify the restart callbacks for ISA, AHCI and BMDMA 2. Ensure we can restart a command after migration
Many of the early patches only make much sense considering the end-goal of eliminating BMDMA specific restart code to be shared with ISA and AHCI codepaths. Migration for halted commands is fixed for ISA, PCI and AHCI. As a consequence, operations halted via rerror=stop or werror=stop should be able to be successfully migrated and resumed when using ISA, PCI, or AHCI. This series includes tests for ISA and PCI/BMDMA, but does not yet include tests for AHCI, which require some more qtest work to be upstreamed first. Regardless, the AHCI tests have been written and can be observed at: https://github.com/jnsnow/qemu/commits/ahci-devel-latest See "ahci: add migrate dma test" and "ahci-test: add flush migrate test" for the WIP versions of the AHCI test that I used to exercise this patchset. John Snow (3): ahci: Migrate IDEStatus ahci: Recompute cur_cmd on migrate post load qtest/ide: Test flush / retry for ISA and PCI Paolo Bonzini (14): ide: start extracting ide_restart_dma out of bmdma_restart_dma ide: prepare to move restart to common code ide: introduce ide_register_restart_cb ide: do not use BMDMA in restart callback ide: pass IDEBus to the restart_cb ide: move restart callback to common code ide: remove restart_cb callback ide: replace set_unit callback with more IDEBus state ide: place initial state of the current request to IDEBus ide: migrate initial request state via IDEBus ide: commonize io_buffer_index initialization ide: make more functions static ide: support PIO restart for the ISA controller ahci: add support for restarting non-queued commands hw/ide/ahci.c | 37 +++++++++--------- hw/ide/atapi.c | 3 +- hw/ide/cmd646.c | 3 +- hw/ide/core.c | 109 +++++++++++++++++++++++++++++++++++++++++++++++------- hw/ide/internal.h | 16 +++++--- hw/ide/isa.c | 3 +- hw/ide/macio.c | 6 --- hw/ide/pci.c | 98 ++++++++---------------------------------------- hw/ide/pci.h | 12 +++--- hw/ide/piix.c | 3 +- hw/ide/via.c | 3 +- tests/ide-test.c | 20 +++++++--- 12 files changed, 165 insertions(+), 148 deletions(-) -- 1.9.3