Also invoke msi_reset on device reset to unsure proper config space state. CC: Gerd Hoffmann <kra...@redhat.com> CC: Alexander Graf <ag...@suse.de> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- hw/ide/ahci.c | 2 ++ hw/intel-hda.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 1f008a3..feb0ea9 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1159,6 +1159,8 @@ void ahci_reset(void *opaque) struct AHCIPCIState *d = opaque; int i; + msi_reset(&d->card); + d->ahci.control_regs.irqstatus = 0; d->ahci.control_regs.ghc = 0; diff --git a/hw/intel-hda.c b/hw/intel-hda.c index 71843f1..5dd69c7 100644 --- a/hw/intel-hda.c +++ b/hw/intel-hda.c @@ -1117,6 +1117,8 @@ static void intel_hda_reset(DeviceState *dev) DeviceState *qdev; HDACodecDevice *cdev; + msi_reset(&d->pci); + intel_hda_regs_reset(d); d->wall_base_ns = qemu_get_clock_ns(vm_clock); -- 1.7.1