[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 3/4] secondary-vga: delete mmio subregions upon exit
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 3/4] secondary-vga: delete mmio subregions upon exit |
Date: |
Fri, 5 Oct 2018 13:11:56 +0200 |
From: "remy.noel" <address@hidden>
93abfc88bd649de1933588bfc7175605331b3ea9 introduced a reference cycle in
the vga-pci devices, preventing cleanup of the object upon hotblug.
This patch allows to break the cycle.
Signed-off-by: remy.noel <address@hidden>
Message-id: address@hidden
[ kraxel: delete the recently added edid region too ]
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/display/vga-pci.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/display/vga-pci.c b/hw/display/vga-pci.c
index 24ca1b3e1f..a17c96e703 100644
--- a/hw/display/vga-pci.c
+++ b/hw/display/vga-pci.c
@@ -309,6 +309,14 @@ static void pci_secondary_vga_exit(PCIDevice *dev)
VGACommonState *s = &d->vga;
graphic_console_close(s->con);
+ memory_region_del_subregion(&d->mmio, &d->mrs[0]);
+ memory_region_del_subregion(&d->mmio, &d->mrs[1]);
+ if (d->flags & (1 << PCI_VGA_FLAG_ENABLE_QEXT)) {
+ memory_region_del_subregion(&d->mmio, &d->mrs[2]);
+ }
+ if (d->flags & (1 << PCI_VGA_FLAG_ENABLE_EDID)) {
+ memory_region_del_subregion(&d->mmio, &d->mrs[3]);
+ }
}
static void pci_secondary_vga_init(Object *obj)
--
2.9.3