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