From 89da90b1b4acf24a9a3f2fd197b1bdf69ab24e72 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 24 Aug 2011 22:09:41 +0300 Subject: gt64xxx: fix crash in gt64120_pci_mapping() 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 Signed-off-by: Edgar E. Iglesias --- hw/gt64xxx.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); + } } } -- cgit v1.1