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


Reply via email to