@@ -1100,9 +1100,18 @@ pvscsi_uninit(PCIDevice *pci_dev)
PVSCSIState *s = PVSCSI(pci_dev);
trace_pvscsi_state("uninit");
- qemu_bh_delete(s->completion_worker);
pvscsi_cleanup_msi(s);
+}
+
+static void
+pvscsi_instance_finalize(Object *obj)
+{
+ PVSCSIState *s = PVSCSI(obj);
+
+ trace_pvscsi_state("finalize");
+
+ qemu_bh_delete(s->completion_worker);
memory_region_destroy(&s->io_space);
}
@@ -1206,6 +1215,7 @@ static const TypeInfo pvscsi_info = {
.parent = TYPE_PCI_DEVICE,
.instance_size = sizeof(PVSCSIState),
.class_init = pvscsi_class_init,
+ .instance_finalize = pvscsi_instance_finalize,
};
static void
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- hw/scsi/vmw_pvscsi.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)