From patchwork Fri Jun 3 15:56:54 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped Date: Fri, 03 Jun 2011 05:56:54 -0000 From: Stefano Stabellini X-Patchwork-Id: 98603 Message-Id: <1307116614-11775-2-git-send-email-stefano.stabellini@eu.citrix.com> To: qemu-devel@nongnu.org Cc: anthony.perard@citrix.com, xen-devel@lists.xensource.com, agraf@suse.de, Stefano Stabellini From: Stefano Stabellini If the cirrus_vga PCI BAR is unmapped than we should not only reset map_addr but also lfb_addr, otherwise we'll keep trying to map the old lfb_addr in map_linear_vram. Signed-off-by: Stefano Stabellini Acked-by: Jan Kiszka --- hw/cirrus_vga.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/hw/cirrus_vga.c b/hw/cirrus_vga.c index 722cac7..3c5043e 100644 --- a/hw/cirrus_vga.c +++ b/hw/cirrus_vga.c @@ -3088,8 +3088,11 @@ static void pci_cirrus_write_config(PCIDevice *d, CirrusVGAState *s = &pvs->cirrus_vga; pci_default_write_config(d, address, val, len); - if (s->vga.map_addr && d->io_regions[0].addr == PCI_BAR_UNMAPPED) + if (s->vga.map_addr && d->io_regions[0].addr == PCI_BAR_UNMAPPED) { s->vga.map_addr = 0; + s->vga.lfb_addr = 0; + s->vga.lfb_end = 0; + } cirrus_update_memory_access(s); }