Drop outdated dirty log disable/enable around PCI remapping and register
the BAR for dirty logging via cpu_register_physical_memory_log. That
allows to remove all vga_dirty_log_start/stop references from qxl.

CC: Gerd Hoffmann <kra...@redhat.com>
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---

Changes in v2:
 - don't enable logging for secondary adapter

 hw/qxl.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/hw/qxl.c b/hw/qxl.c
index 1906e84..01149ae 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -619,12 +619,10 @@ static void qxl_write_config(PCIDevice *d, uint32_t 
address,
     PCIQXLDevice *qxl = DO_UPCAST(PCIQXLDevice, pci, d);
     VGACommonState *vga = &qxl->vga;
 
-    vga_dirty_log_stop(vga);
     pci_default_write_config(d, address, val, len);
     if (vga->map_addr && qxl->pci.io_regions[0].addr == -1) {
         vga->map_addr = 0;
     }
-    vga_dirty_log_start(vga);
 }
 
 static void qxl_check_state(PCIQXLDevice *d)
@@ -1037,12 +1035,11 @@ static void qxl_map(PCIDevice *pci, int region_num,
         qxl->io_base = addr;
         break;
     case QXL_RAM_RANGE_INDEX:
-        cpu_register_physical_memory(addr, size, qxl->vga.vram_offset | 
IO_MEM_RAM);
+        cpu_register_physical_memory_log(addr, size,
+                                         qxl->vga.vram_offset | IO_MEM_RAM,
+                                         0, qxl->id == 0);
         qxl->vga.map_addr = addr;
         qxl->vga.map_end = addr + size;
-        if (qxl->id == 0) {
-            vga_dirty_log_start(&qxl->vga);
-        }
         break;
     case QXL_ROM_RANGE_INDEX:
         cpu_register_physical_memory(addr, size, qxl->rom_offset | IO_MEM_ROM);
-- 
1.7.1

Reply via email to