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


Reply via email to