From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:34851) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QWWRB-0004Kf-Pn for qemu-devel@nongnu.org; Tue, 14 Jun 2011 12:25:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QWWRA-0007Oy-Al for qemu-devel@nongnu.org; Tue, 14 Jun 2011 12:25:57 -0400 Received: from thoth.sbs.de ([192.35.17.2]:15659) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QWWR9-0007OY-T3 for qemu-devel@nongnu.org; Tue, 14 Jun 2011 12:25:56 -0400 Message-ID: <4DF78B89.8030202@siemens.com> Date: Tue, 14 Jun 2011 18:25:45 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <1307116614-11775-1-git-send-email-stefano.stabellini@eu.citrix.com> <1307116614-11775-2-git-send-email-stefano.stabellini@eu.citrix.com> <4DF7681F.6020104@suse.de> In-Reply-To: <4DF7681F.6020104@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] cirrus_vga: reset lfb_addr after a pci config write if the BAR is unmapped List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: anthony.perard@citrix.com, xen-devel@lists.xensource.com, qemu-devel@nongnu.org, stefano.stabellini@eu.citrix.com On 2011-06-14 15:54, Alexander Graf wrote: > On 06/03/2011 05:56 PM, stefano.stabellini@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