From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38250) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwIpg-0005co-Kh for qemu-devel@nongnu.org; Wed, 24 Aug 2011 15:09:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QwIpf-0003hV-AN for qemu-devel@nongnu.org; Wed, 24 Aug 2011 15:09:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59494) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QwIpf-0003hK-1T for qemu-devel@nongnu.org; Wed, 24 Aug 2011 15:09:47 -0400 From: Avi Kivity Date: Wed, 24 Aug 2011 22:09:41 +0300 Message-Id: <1314212981-30211-1-git-send-email-avi@redhat.com> In-Reply-To: <20110824183949.GC17167@zapo> References: <20110824183949.GC17167@zapo> Subject: [Qemu-devel] [PATCH] gt64xxx: fix crash in gt64120_pci_mapping() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Edgar E. Iglesias" Cc: Blue Swirl , Peter Maydell , qemu-devel@nongnu.org The map/unmap code was assymetric - unmap used the local MemoryRegion while map used isa_mmio_init(), which cannot handle dynamic mappings. Fix by using isa_mmio_setup() and the local MemoryRegion. Signed-off-by: Avi Kivity --- Untested. hw/gt64xxx.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c index 6af9782..1c34253 100644 --- a/hw/gt64xxx.c +++ b/hw/gt64xxx.c @@ -297,7 +297,11 @@ static void gt64120_pci_mapping(GT64120State *s) s->PCI0IO_start = s->regs[GT_PCI0IOLD] << 21; s->PCI0IO_length = ((s->regs[GT_PCI0IOHD] + 1) - (s->regs[GT_PCI0IOLD] & 0x7f)) << 21; isa_mem_base = s->PCI0IO_start; - isa_mmio_init(s->PCI0IO_start, s->PCI0IO_length); + if (s->PCI0IO_length) { + isa_mmio_setup(&s->PCI0IO_mem, s->PCI0IO_length); + memory_region_add_subregion(get_system_memory(), s->PCI0IO_start, + &s->PCI0IO_mem); + } } } -- 1.7.5.3