[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 37/38] xen_pt: reclaim memory in instance_finalize i
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 37/38] xen_pt: reclaim memory in instance_finalize instead of exit |
Date: |
Tue, 3 Sep 2013 14:33:28 +0200 |
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/xen/xen_pt.c | 10 ++++++++++
hw/xen/xen_pt_config_init.c | 3 ---
hw/xen/xen_pt_msi.c | 8 +++++++-
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index ca2d460..592c472 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -806,7 +806,16 @@ static void xen_pt_unregister_device(PCIDevice *d)
}
}
+ xen_pt_msix_delete(s);
+}
+
+static void xen_pt_instance_finalize(Object *obj)
+{
+ PCIDevice *d = PCI_DEVICE(obj);
+ XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d);
+
/* delete all emulated config registers */
+ xen_pt_msix_free(s);
xen_pt_config_delete(s);
xen_pt_unregister_regions(s);
@@ -840,6 +849,7 @@ static const TypeInfo xen_pci_passthrough_info = {
.parent = TYPE_PCI_DEVICE,
.instance_size = sizeof(XenPCIPassthroughState),
.class_init = xen_pci_passthrough_class_init,
+ .instance_finalize = xen_pt_instance_finalize,
};
static void xen_pci_passthrough_register_types(void)
diff --git a/hw/xen/xen_pt_config_init.c b/hw/xen/xen_pt_config_init.c
index 8ccc2e4..25f6334 100644
--- a/hw/xen/xen_pt_config_init.c
+++ b/hw/xen/xen_pt_config_init.c
@@ -1861,9 +1861,6 @@ void xen_pt_config_delete(XenPCIPassthroughState *s)
struct XenPTReg *reg, *next_reg;
/* free MSI/MSI-X info table */
- if (s->msix) {
- xen_pt_msix_delete(s);
- }
if (s->msi) {
g_free(s->msi);
}
diff --git a/hw/xen/xen_pt_msi.c b/hw/xen/xen_pt_msi.c
index 6fbe0cc..5bcbbf2 100644
--- a/hw/xen/xen_pt_msi.c
+++ b/hw/xen/xen_pt_msi.c
@@ -605,6 +605,13 @@ void xen_pt_msix_delete(XenPCIPassthroughState *s)
return;
}
+ memory_region_del_subregion(&s->bar[msix->bar_index], &msix->mmio);
+}
+
+void xen_pt_msix_free(XenPCIPassthroughState *s)
+{
+ XenPTMSIX *msix = s->msix;
+
/* unmap the MSI-X memory mapped register area */
if (msix->phys_iomem_base) {
XEN_PT_LOG(&s->dev, "unmapping physical MSI-X table from %p\n",
@@ -613,7 +620,6 @@ void xen_pt_msix_delete(XenPCIPassthroughState *s)
+ msix->table_offset_adjust);
}
- memory_region_del_subregion(&s->bar[msix->bar_index], &msix->mmio);
memory_region_destroy(&msix->mmio);
g_free(s->msix);
--
1.8.3.1
- [Qemu-devel] [PATCH 27/38] ioh4320: reclaim memory in instance_finalize instead of exit, (continued)
- [Qemu-devel] [PATCH 27/38] ioh4320: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 28/38] xio3130-downstream: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 29/38] xio3130-upstream: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 30/38] pcie: do not recreate mmcfg I/O region, use an alias instead, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 31/38] esp: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 32/38] lsi: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 34/38] usb-uhci: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 33/38] pvscsi: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 35/38] virtio-pci: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 36/38] wdt_i6300esb: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 37/38] xen_pt: reclaim memory in instance_finalize instead of exit,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 38/38] tpm: move add/del_subregion to realize/unrealize, Paolo Bonzini, 2013/09/03
- Re: [Qemu-devel] [PATCH v2 00/38] Delay destruction of memory regions to instance_finalize, Paolo Bonzini, 2013/09/16
- Re: [Qemu-devel] [PATCH v2 00/38] Delay destruction of memory regions to instance_finalize, Wenchao Xia, 2013/09/17
- Re: [Qemu-devel] [PATCH v2 00/38] Delay destruction of memory regions to instance_finalize, Michael S. Tsirkin, 2013/09/17
- Re: [Qemu-devel] [PATCH v2 00/38] Delay destruction of memory regions to instance_finalize, Michael S. Tsirkin, 2013/09/17