Revision 75c578dc memory.c

b/memory.c
838 838
static void memory_region_destructor_rom_device(MemoryRegion *mr)
839 839
{
840 840
    qemu_ram_free(mr->ram_addr & TARGET_PAGE_MASK);
841
    cpu_unregister_io_memory(mr->ram_addr & ~(TARGET_PAGE_MASK | IO_MEM_ROMD));
841
    cpu_unregister_io_memory(mr->ram_addr & ~TARGET_PAGE_MASK);
842 842
}
843 843

  
844 844
static bool memory_region_wrong_endianness(MemoryRegion *mr)
......
868 868
    mr->ram = false;
869 869
    mr->readable = true;
870 870
    mr->readonly = false;
871
    mr->rom_device = false;
871 872
    mr->destructor = memory_region_destructor_none;
872 873
    mr->priority = 0;
873 874
    mr->may_overlap = false;
......
1039 1040
    mr->ops = ops;
1040 1041
    mr->opaque = opaque;
1041 1042
    mr->terminates = true;
1043
    mr->rom_device = true;
1042 1044
    mr->destructor = memory_region_destructor_rom_device;
1043 1045
    mr->ram_addr = qemu_ram_alloc(size, mr);
1044 1046
    mr->ram_addr |= cpu_register_io_memory(mr);
1045
    mr->ram_addr |= IO_MEM_ROMD;
1046 1047
}
1047 1048

  
1048 1049
void memory_region_destroy(MemoryRegion *mr)

Also available in: Unified diff