@@ -58,6 +58,7 @@ typedef struct GuestROMState {
struct VAPICROMState {
SysBusDevice busdev;
+
MemoryRegion io;
MemoryRegion rom;
uint32_t state;
@@ -581,19 +582,17 @@ static int vapic_map_rom_writable(VAPICROMState *s)
{
hwaddr rom_paddr = s->rom_state_paddr & ROM_BLOCK_MASK;
MemoryRegionSection section;
- MemoryRegion *as;
+ MemoryRegion *mr = get_system_memory();
size_t rom_size;
uint8_t *ram;
- as = sysbus_address_space(&s->busdev);
-
if (s->rom_mapped_writable) {
- memory_region_del_subregion(as, &s->rom);
+ memory_region_del_subregion(mr, &s->rom);
object_unparent(OBJECT(&s->rom));
}
/* grab RAM memory region (region @rom_paddr may still be pc.rom) */
- section = memory_region_find(as, 0, 1);
+ section = memory_region_find(mr, 0, 1);
/* read ROM size from RAM region */
if (rom_paddr + 2 >= memory_region_size(section.mr)) {
@@ -614,7 +613,7 @@ static int vapic_map_rom_writable(VAPICROMState *s)
memory_region_init_alias(&s->rom, OBJECT(s), "kvmvapic-rom", section.mr,
rom_paddr, rom_size);
- memory_region_add_subregion_overlap(as, rom_paddr, &s->rom, 1000);
+ memory_region_add_subregion_overlap(mr, rom_paddr, &s->rom, 1000);
s->rom_mapped_writable = true;
memory_region_unref(section.mr);