[Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped
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 --- 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); } -- 1.7.2.3
Re: [Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped
On 06/03/2011 05:56 PM, stefano.stabell...@eu.citrix.com wrote: 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. The patch looks good to me, but I'd love to get an ack from someone who knows the cirrus code before committing it. Alex Signed-off-by: Stefano Stabellini --- 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); }
Re: [Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped
On 2011-06-14 15:54, Alexander Graf wrote: > On 06/03/2011 05:56 PM, stefano.stabell...@eu.citrix.com wrote: >> 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. > > The patch looks good to me, but I'd love to get an ack from someone who > knows the cirrus code before committing it. > I'm not claiming to be the cirrus expert, but I've just walked through all this vga mapping stuff: patch is correct. Acked-by: Jan Kiszka > > Alex > >> Signed-off-by: Stefano Stabellini >> --- >> 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); >> } >> -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux