qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]