From: Avi Kivity Date: Wed, 24 Aug 2011 19:09:41 +0000 (+0300) Subject: gt64xxx: fix crash in gt64120_pci_mapping() X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~1405^2~17^2~1827 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89da90b1b4acf24a9a3f2fd197b1bdf69ab24e72;p=sdk%2Femulator%2Fqemu.git 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 --- diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c index 6af9782d90..1c3425372a 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); + } } }