Fix bad error handling after memory_region_init_ram()

Symptom:

    $ qemu-system-x86_64 -m 10000000
    Unexpected error in ram_block_add() at /work/armbru/qemu/exec.c:1456:
    upstream-qemu: cannot set up guest memory 'pc.ram': Cannot allocate memory
    Aborted (core dumped)

Root cause: commit ef701d7 screwed up handling of out-of-memory
conditions.  Before the commit, we report the error and exit(1), in
one place, ram_block_add().  The commit lifts the error handling up
the call chain some, to three places.  Fine.  Except it uses
&error_abort in these places, changing the behavior from exit(1) to
abort(), and thus undoing the work of commit 3922825 "exec: Don't
abort when we can't allocate guest memory".

The three places are:

* memory_region_init_ram()

  Commit 4994653 (right after commit ef701d7) lifted the error
  handling further, through memory_region_init_ram(), multiplying the
  incorrect use of &error_abort.  Later on, imitation of existing
  (bad) code may have created more.

* memory_region_init_ram_ptr()

  The &error_abort is still there.

* memory_region_init_rom_device()

  Doesn't need fixing, because commit 33e0eb5 (soon after commit
  ef701d7) lifted the error handling further, and in the process
  changed it from &error_abort to passing it up the call chain.
  Correct, because the callers are realize() methods.

Fix the error handling after memory_region_init_ram() with a
Coccinelle semantic patch:

    @r@
    expression mr, owner, name, size, err;
    position p;
    @@
            memory_region_init_ram(mr, owner, name, size,
    (
    -                              &error_abort
    +                              &error_fatal
    |
                                   err@p
    )
                                  );
    @script:python@
        p << r.p;
    @@
    print "%s:%s:%s" % (p[0].file, p[0].line, p[0].column)

When the last argument is &error_abort, it gets replaced by
&error_fatal.  This is the fix.

If the last argument is anything else, its position is reported.  This
lets us check the fix is complete.  Four positions get reported:

* ram_backend_memory_alloc()

  Error is passed up the call chain, ultimately through
  user_creatable_complete().  As far as I can tell, it's callers all
  handle the error sanely.

* fsl_imx25_realize(), fsl_imx31_realize(), dp8393x_realize()

  DeviceClass.realize() methods, errors handled sanely further up the
  call chain.

We're good.  Test case again behaves:

    $ qemu-system-x86_64 -m 10000000
    qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory
    [Exit 1 ]

The next commits will repair the rest of commit ef701d7's damage.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <1441983105-26376-3-git-send-email-armbru@redhat.com>
Reviewed-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
This commit is contained in:
Markus Armbruster 2015-09-11 16:51:43 +02:00
parent a29a37b994
commit f8ed85ac99
62 changed files with 110 additions and 101 deletions

View File

@ -229,7 +229,7 @@ qemu_irq *armv7m_init(MemoryRegion *system_memory, int mem_size, int num_irq,
/* Hack to map an additional page of ram at the top of the address /* Hack to map an additional page of ram at the top of the address
space. This stops qemu complaining about executing code outside RAM space. This stops qemu complaining about executing code outside RAM
when returning from an exception. */ when returning from an exception. */
memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000, &error_abort); memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000, &error_fatal);
vmstate_register_ram_global(hack); vmstate_register_ram_global(hack);
memory_region_add_subregion(system_memory, 0xfffff000, hack); memory_region_add_subregion(system_memory, 0xfffff000, hack);

View File

@ -259,7 +259,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
/* Internal ROM */ /* Internal ROM */
memory_region_init_ram(&s->irom_mem, NULL, "exynos4210.irom", memory_region_init_ram(&s->irom_mem, NULL, "exynos4210.irom",
EXYNOS4210_IROM_SIZE, &error_abort); EXYNOS4210_IROM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->irom_mem); vmstate_register_ram_global(&s->irom_mem);
memory_region_set_readonly(&s->irom_mem, true); memory_region_set_readonly(&s->irom_mem, true);
memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR,
@ -275,7 +275,7 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
/* Internal RAM */ /* Internal RAM */
memory_region_init_ram(&s->iram_mem, NULL, "exynos4210.iram", memory_region_init_ram(&s->iram_mem, NULL, "exynos4210.iram",
EXYNOS4210_IRAM_SIZE, &error_abort); EXYNOS4210_IRAM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->iram_mem); vmstate_register_ram_global(&s->iram_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_IRAM_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_IRAM_BASE_ADDR,
&s->iram_mem); &s->iram_mem);
@ -284,14 +284,14 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem,
mem_size = ram_size; mem_size = ram_size;
if (mem_size > EXYNOS4210_DRAM_MAX_SIZE) { if (mem_size > EXYNOS4210_DRAM_MAX_SIZE) {
memory_region_init_ram(&s->dram1_mem, NULL, "exynos4210.dram1", memory_region_init_ram(&s->dram1_mem, NULL, "exynos4210.dram1",
mem_size - EXYNOS4210_DRAM_MAX_SIZE, &error_abort); mem_size - EXYNOS4210_DRAM_MAX_SIZE, &error_fatal);
vmstate_register_ram_global(&s->dram1_mem); vmstate_register_ram_global(&s->dram1_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_DRAM1_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_DRAM1_BASE_ADDR,
&s->dram1_mem); &s->dram1_mem);
mem_size = EXYNOS4210_DRAM_MAX_SIZE; mem_size = EXYNOS4210_DRAM_MAX_SIZE;
} }
memory_region_init_ram(&s->dram0_mem, NULL, "exynos4210.dram0", mem_size, memory_region_init_ram(&s->dram0_mem, NULL, "exynos4210.dram0", mem_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->dram0_mem); vmstate_register_ram_global(&s->dram0_mem);
memory_region_add_subregion(system_mem, EXYNOS4210_DRAM0_BASE_ADDR, memory_region_add_subregion(system_mem, EXYNOS4210_DRAM0_BASE_ADDR,
&s->dram0_mem); &s->dram0_mem);

View File

@ -281,7 +281,7 @@ static void calxeda_init(MachineState *machine, enum cxmachines machine_id)
sysram = g_new(MemoryRegion, 1); sysram = g_new(MemoryRegion, 1);
memory_region_init_ram(sysram, NULL, "highbank.sysram", 0x8000, memory_region_init_ram(sysram, NULL, "highbank.sysram", 0x8000,
&error_abort); &error_fatal);
memory_region_add_subregion(sysmem, 0xfff88000, sysram); memory_region_add_subregion(sysmem, 0xfff88000, sysram);
if (bios_name != NULL) { if (bios_name != NULL) {
sysboot_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); sysboot_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);

View File

@ -266,7 +266,7 @@ static int integratorcm_init(SysBusDevice *dev)
s->cm_refcnt_offset = muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), 24, s->cm_refcnt_offset = muldiv64(qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL), 24,
1000); 1000);
memory_region_init_ram(&s->flash, OBJECT(s), "integrator.flash", 0x100000, memory_region_init_ram(&s->flash, OBJECT(s), "integrator.flash", 0x100000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->flash); vmstate_register_ram_global(&s->flash);
memory_region_init_io(&s->iomem, OBJECT(s), &integratorcm_ops, s, memory_region_init_io(&s->iomem, OBJECT(s), &integratorcm_ops, s,

View File

@ -124,7 +124,7 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
/* Setup CPU & memory */ /* Setup CPU & memory */
mpu = pxa270_init(address_space_mem, mainstone_binfo.ram_size, cpu_model); mpu = pxa270_init(address_space_mem, mainstone_binfo.ram_size, cpu_model);
memory_region_init_ram(rom, NULL, "mainstone.rom", MAINSTONE_ROM, memory_region_init_ram(rom, NULL, "mainstone.rom", MAINSTONE_ROM,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -1599,7 +1599,7 @@ static void musicpal_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0, ram); memory_region_add_subregion(address_space_mem, 0, ram);
memory_region_init_ram(sram, NULL, "musicpal.sram", MP_SRAM_SIZE, memory_region_init_ram(sram, NULL, "musicpal.sram", MP_SRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, MP_SRAM_BASE, sram); memory_region_add_subregion(address_space_mem, MP_SRAM_BASE, sram);

View File

@ -3872,7 +3872,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
s->sdram_size); s->sdram_size);
memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram); memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram);
memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size, memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->imif_ram); vmstate_register_ram_global(&s->imif_ram);
memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram); memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram);

View File

@ -2271,7 +2271,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,
s->sdram_size); s->sdram_size);
memory_region_add_subregion(sysmem, OMAP2_Q2_BASE, &s->sdram); memory_region_add_subregion(sysmem, OMAP2_Q2_BASE, &s->sdram);
memory_region_init_ram(&s->sram, NULL, "omap2.sram", s->sram_size, memory_region_init_ram(&s->sram, NULL, "omap2.sram", s->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sram); vmstate_register_ram_global(&s->sram);
memory_region_add_subregion(sysmem, OMAP2_SRAM_BASE, &s->sram); memory_region_add_subregion(sysmem, OMAP2_SRAM_BASE, &s->sram);

View File

@ -122,7 +122,7 @@ static void sx1_init(MachineState *machine, const int version)
/* External Flash (EMIFS) */ /* External Flash (EMIFS) */
memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size, memory_region_init_ram(flash, NULL, "omap_sx1.flash0-0", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space, OMAP_CS0_BASE, flash); memory_region_add_subregion(address_space, OMAP_CS0_BASE, flash);
@ -166,7 +166,7 @@ static void sx1_init(MachineState *machine, const int version)
(dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) { (dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) {
MemoryRegion *flash_1 = g_new(MemoryRegion, 1); MemoryRegion *flash_1 = g_new(MemoryRegion, 1);
memory_region_init_ram(flash_1, NULL, "omap_sx1.flash1-0", flash1_size, memory_region_init_ram(flash_1, NULL, "omap_sx1.flash1-0", flash1_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash_1); vmstate_register_ram_global(flash_1);
memory_region_set_readonly(flash_1, true); memory_region_set_readonly(flash_1, true);
memory_region_add_subregion(address_space, OMAP_CS1_BASE, flash_1); memory_region_add_subregion(address_space, OMAP_CS1_BASE, flash_1);

View File

@ -213,7 +213,7 @@ static void palmte_init(MachineState *machine)
/* External Flash (EMIFS) */ /* External Flash (EMIFS) */
memory_region_init_ram(flash, NULL, "palmte.flash", flash_size, memory_region_init_ram(flash, NULL, "palmte.flash", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(address_space_mem, OMAP_CS0_BASE, flash); memory_region_add_subregion(address_space_mem, OMAP_CS0_BASE, flash);

View File

@ -2078,11 +2078,11 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
/* SDRAM & Internal Memory Storage */ /* SDRAM & Internal Memory Storage */
memory_region_init_ram(&s->sdram, NULL, "pxa270.sdram", sdram_size, memory_region_init_ram(&s->sdram, NULL, "pxa270.sdram", sdram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sdram); vmstate_register_ram_global(&s->sdram);
memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram); memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram);
memory_region_init_ram(&s->internal, NULL, "pxa270.internal", 0x40000, memory_region_init_ram(&s->internal, NULL, "pxa270.internal", 0x40000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->internal); vmstate_register_ram_global(&s->internal);
memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE, memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE,
&s->internal); &s->internal);
@ -2212,11 +2212,11 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size)
/* SDRAM & Internal Memory Storage */ /* SDRAM & Internal Memory Storage */
memory_region_init_ram(&s->sdram, NULL, "pxa255.sdram", sdram_size, memory_region_init_ram(&s->sdram, NULL, "pxa255.sdram", sdram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->sdram); vmstate_register_ram_global(&s->sdram);
memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram); memory_region_add_subregion(address_space, PXA2XX_SDRAM_BASE, &s->sdram);
memory_region_init_ram(&s->internal, NULL, "pxa255.internal", memory_region_init_ram(&s->internal, NULL, "pxa255.internal",
PXA2XX_INTERNAL_SIZE, &error_abort); PXA2XX_INTERNAL_SIZE, &error_fatal);
vmstate_register_ram_global(&s->internal); vmstate_register_ram_global(&s->internal);
memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE, memory_region_add_subregion(address_space, PXA2XX_INTERNAL_BASE,
&s->internal); &s->internal);

View File

@ -151,13 +151,13 @@ static void realview_init(MachineState *machine,
low_ram_size = ram_size - 0x20000000; low_ram_size = ram_size - 0x20000000;
ram_size = 0x20000000; ram_size = 0x20000000;
memory_region_init_ram(ram_lo, NULL, "realview.lowmem", low_ram_size, memory_region_init_ram(ram_lo, NULL, "realview.lowmem", low_ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_lo); vmstate_register_ram_global(ram_lo);
memory_region_add_subregion(sysmem, 0x20000000, ram_lo); memory_region_add_subregion(sysmem, 0x20000000, ram_lo);
} }
memory_region_init_ram(ram_hi, NULL, "realview.highmem", ram_size, memory_region_init_ram(ram_hi, NULL, "realview.highmem", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_hi); vmstate_register_ram_global(ram_hi);
low_ram_size = ram_size; low_ram_size = ram_size;
if (low_ram_size > 0x10000000) if (low_ram_size > 0x10000000)
@ -353,7 +353,7 @@ static void realview_init(MachineState *machine,
BootROM happens to be in ROM/flash or in memory that isn't clobbered BootROM happens to be in ROM/flash or in memory that isn't clobbered
until after Linux boots the secondary CPUs. */ until after Linux boots the secondary CPUs. */
memory_region_init_ram(ram_hack, NULL, "realview.hack", 0x1000, memory_region_init_ram(ram_hack, NULL, "realview.hack", 0x1000,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_hack); vmstate_register_ram_global(ram_hack);
memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack); memory_region_add_subregion(sysmem, SMP_BOOT_ADDR, ram_hack);

View File

@ -913,7 +913,7 @@ static void spitz_common_init(MachineState *machine,
sl_flash_register(mpu, (model == spitz) ? FLASH_128M : FLASH_1024M); sl_flash_register(mpu, (model == spitz) ? FLASH_128M : FLASH_1024M);
memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM, &error_abort); memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -1231,13 +1231,13 @@ static void stellaris_init(const char *kernel_filename, const char *cpu_model,
/* Flash programming is done via the SCU, so pretend it is ROM. */ /* Flash programming is done via the SCU, so pretend it is ROM. */
memory_region_init_ram(flash, NULL, "stellaris.flash", flash_size, memory_region_init_ram(flash, NULL, "stellaris.flash", flash_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(flash); vmstate_register_ram_global(flash);
memory_region_set_readonly(flash, true); memory_region_set_readonly(flash, true);
memory_region_add_subregion(system_memory, 0, flash); memory_region_add_subregion(system_memory, 0, flash);
memory_region_init_ram(sram, NULL, "stellaris.sram", sram_size, memory_region_init_ram(sram, NULL, "stellaris.sram", sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(system_memory, 0x20000000, sram); memory_region_add_subregion(system_memory, 0x20000000, sram);

View File

@ -71,7 +71,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
MemoryRegion *flash_alias = g_new(MemoryRegion, 1); MemoryRegion *flash_alias = g_new(MemoryRegion, 1);
memory_region_init_ram(flash, NULL, "STM32F205.flash", FLASH_SIZE, memory_region_init_ram(flash, NULL, "STM32F205.flash", FLASH_SIZE,
&error_abort); &error_fatal);
memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias", memory_region_init_alias(flash_alias, NULL, "STM32F205.flash.alias",
flash, 0, FLASH_SIZE); flash, 0, FLASH_SIZE);
@ -84,7 +84,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc, Error **errp)
memory_region_add_subregion(system_memory, 0, flash_alias); memory_region_add_subregion(system_memory, 0, flash_alias);
memory_region_init_ram(sram, NULL, "STM32F205.sram", SRAM_SIZE, memory_region_init_ram(sram, NULL, "STM32F205.sram", SRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, sram); memory_region_add_subregion(system_memory, SRAM_BASE_ADDRESS, sram);

View File

@ -227,7 +227,7 @@ static void tosa_init(MachineState *machine)
mpu = pxa255_init(address_space_mem, tosa_binfo.ram_size); mpu = pxa255_init(address_space_mem, tosa_binfo.ram_size);
memory_region_init_ram(rom, NULL, "tosa.rom", TOSA_ROM, &error_abort); memory_region_init_ram(rom, NULL, "tosa.rom", TOSA_ROM, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(address_space_mem, 0, rom); memory_region_add_subregion(address_space_mem, 0, rom);

View File

@ -391,7 +391,7 @@ static void a15_daughterboard_init(const VexpressMachineState *vms,
/* 0x2b0a0000: PL341 dynamic memory controller: not modelled */ /* 0x2b0a0000: PL341 dynamic memory controller: not modelled */
/* 0x2e000000: system SRAM */ /* 0x2e000000: system SRAM */
memory_region_init_ram(sram, NULL, "vexpress.a15sram", 0x10000, memory_region_init_ram(sram, NULL, "vexpress.a15sram", 0x10000,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, 0x2e000000, sram); memory_region_add_subregion(sysmem, 0x2e000000, sram);
@ -671,13 +671,13 @@ static void vexpress_common_init(MachineState *machine)
sram_size = 0x2000000; sram_size = 0x2000000;
memory_region_init_ram(sram, NULL, "vexpress.sram", sram_size, memory_region_init_ram(sram, NULL, "vexpress.sram", sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, map[VE_SRAM], sram); memory_region_add_subregion(sysmem, map[VE_SRAM], sram);
vram_size = 0x800000; vram_size = 0x800000;
memory_region_init_ram(vram, NULL, "vexpress.vram", vram_size, memory_region_init_ram(vram, NULL, "vexpress.vram", vram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(vram); vmstate_register_ram_global(vram);
memory_region_add_subregion(sysmem, map[VE_VIDEORAM], vram); memory_region_add_subregion(sysmem, map[VE_VIDEORAM], vram);

View File

@ -167,7 +167,7 @@ static void zynq_init(MachineState *machine)
/* 256K of on-chip memory */ /* 256K of on-chip memory */
memory_region_init_ram(ocm_ram, NULL, "zynq.ocm_ram", 256 << 10, memory_region_init_ram(ocm_ram, NULL, "zynq.ocm_ram", 256 << 10,
&error_abort); &error_fatal);
vmstate_register_ram_global(ocm_ram); vmstate_register_ram_global(ocm_ram);
memory_region_add_subregion(address_space_mem, 0xFFFC0000, ocm_ram); memory_region_add_subregion(address_space_mem, 0xFFFC0000, ocm_ram);

View File

@ -113,7 +113,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
char *ocm_name = g_strdup_printf("zynqmp.ocm_ram_bank_%d", i); char *ocm_name = g_strdup_printf("zynqmp.ocm_ram_bank_%d", i);
memory_region_init_ram(&s->ocm_ram[i], NULL, ocm_name, memory_region_init_ram(&s->ocm_ram[i], NULL, ocm_name,
XLNX_ZYNQMP_OCM_RAM_SIZE, &error_abort); XLNX_ZYNQMP_OCM_RAM_SIZE, &error_fatal);
vmstate_register_ram_global(&s->ocm_ram[i]); vmstate_register_ram_global(&s->ocm_ram[i]);
memory_region_add_subregion(get_system_memory(), memory_region_add_subregion(get_system_memory(),
XLNX_ZYNQMP_OCM_RAM_0_ADDRESS + XLNX_ZYNQMP_OCM_RAM_0_ADDRESS +

View File

@ -786,7 +786,7 @@ static int onenand_initfn(SysBusDevice *sbd)
s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT), s->otp = memset(g_malloc((64 + 2) << PAGE_SHIFT),
0xff, (64 + 2) << PAGE_SHIFT); 0xff, (64 + 2) << PAGE_SHIFT);
memory_region_init_ram(&s->ram, OBJECT(s), "onenand.ram", memory_region_init_ram(&s->ram, OBJECT(s), "onenand.ram",
0xc000 << s->shift, &error_abort); 0xc000 << s->shift, &error_fatal);
vmstate_register_ram_global(&s->ram); vmstate_register_ram_global(&s->ram);
ram = memory_region_get_ram_ptr(&s->ram); ram = memory_region_get_ram_ptr(&s->ram);
s->boot[0] = ram + (0x0000 << s->shift); s->boot[0] = ram + (0x0000 << s->shift);

View File

@ -277,7 +277,7 @@ void axisdev88_init(MachineState *machine)
/* The ETRAX-FS has 128Kb on chip ram, the docs refer to it as the /* The ETRAX-FS has 128Kb on chip ram, the docs refer to it as the
internal memory. */ internal memory. */
memory_region_init_ram(phys_intmem, NULL, "axisdev88.chipram", INTMEM_SIZE, memory_region_init_ram(phys_intmem, NULL, "axisdev88.chipram", INTMEM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_intmem); vmstate_register_ram_global(phys_intmem);
memory_region_add_subregion(address_space_mem, 0x38000000, phys_intmem); memory_region_add_subregion(address_space_mem, 0x38000000, phys_intmem);

View File

@ -281,7 +281,7 @@ static void cg3_initfn(Object *obj)
CG3State *s = CG3(obj); CG3State *s = CG3(obj);
memory_region_init_ram(&s->rom, NULL, "cg3.prom", FCODE_MAX_ROM_SIZE, memory_region_init_ram(&s->rom, NULL, "cg3.prom", FCODE_MAX_ROM_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->rom, true); memory_region_set_readonly(&s->rom, true);
sysbus_init_mmio(sbd, &s->rom); sysbus_init_mmio(sbd, &s->rom);
@ -310,7 +310,7 @@ static void cg3_realizefn(DeviceState *dev, Error **errp)
} }
memory_region_init_ram(&s->vram_mem, NULL, "cg3.vram", s->vram_size, memory_region_init_ram(&s->vram_mem, NULL, "cg3.vram", s->vram_size,
&error_abort); &error_fatal);
memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA);
vmstate_register_ram_global(&s->vram_mem); vmstate_register_ram_global(&s->vram_mem);
sysbus_init_mmio(sbd, &s->vram_mem); sysbus_init_mmio(sbd, &s->vram_mem);

View File

@ -1970,14 +1970,14 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
qxl->rom_size = qxl_rom_size(); qxl->rom_size = qxl_rom_size();
memory_region_init_ram(&qxl->rom_bar, OBJECT(qxl), "qxl.vrom", memory_region_init_ram(&qxl->rom_bar, OBJECT(qxl), "qxl.vrom",
qxl->rom_size, &error_abort); qxl->rom_size, &error_fatal);
vmstate_register_ram(&qxl->rom_bar, &qxl->pci.qdev); vmstate_register_ram(&qxl->rom_bar, &qxl->pci.qdev);
init_qxl_rom(qxl); init_qxl_rom(qxl);
init_qxl_ram(qxl); init_qxl_ram(qxl);
qxl->guest_surfaces.cmds = g_new0(QXLPHYSICAL, qxl->ssd.num_surfaces); qxl->guest_surfaces.cmds = g_new0(QXLPHYSICAL, qxl->ssd.num_surfaces);
memory_region_init_ram(&qxl->vram_bar, OBJECT(qxl), "qxl.vram", memory_region_init_ram(&qxl->vram_bar, OBJECT(qxl), "qxl.vram",
qxl->vram_size, &error_abort); qxl->vram_size, &error_fatal);
vmstate_register_ram(&qxl->vram_bar, &qxl->pci.qdev); vmstate_register_ram(&qxl->vram_bar, &qxl->pci.qdev);
memory_region_init_alias(&qxl->vram32_bar, OBJECT(qxl), "qxl.vram32", memory_region_init_alias(&qxl->vram32_bar, OBJECT(qxl), "qxl.vram32",
&qxl->vram_bar, 0, qxl->vram32_size); &qxl->vram_bar, 0, qxl->vram32_size);
@ -2079,7 +2079,7 @@ static void qxl_realize_secondary(PCIDevice *dev, Error **errp)
qxl->id = device_id++; qxl->id = device_id++;
qxl_init_ramsize(qxl); qxl_init_ramsize(qxl);
memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram", memory_region_init_ram(&qxl->vga.vram, OBJECT(dev), "qxl.vgavram",
qxl->vga.vram_size, &error_abort); qxl->vga.vram_size, &error_fatal);
vmstate_register_ram(&qxl->vga.vram, &qxl->pci.qdev); vmstate_register_ram(&qxl->vga.vram, &qxl->pci.qdev);
qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram); qxl->vga.vram_ptr = memory_region_get_ram_ptr(&qxl->vga.vram);
qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl); qxl->vga.con = graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl);

View File

@ -1411,7 +1411,7 @@ void sm501_init(MemoryRegion *address_space_mem, uint32_t base,
/* allocate local memory */ /* allocate local memory */
memory_region_init_ram(&s->local_mem_region, NULL, "sm501.local", memory_region_init_ram(&s->local_mem_region, NULL, "sm501.local",
local_mem_bytes, &error_abort); local_mem_bytes, &error_fatal);
vmstate_register_ram_global(&s->local_mem_region); vmstate_register_ram_global(&s->local_mem_region);
memory_region_set_log(&s->local_mem_region, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->local_mem_region, true, DIRTY_MEMORY_VGA);
s->local_mem = memory_region_get_ram_ptr(&s->local_mem_region); s->local_mem = memory_region_get_ram_ptr(&s->local_mem_region);

View File

@ -584,7 +584,7 @@ TC6393xbState *tc6393xb_init(MemoryRegion *sysmem, uint32_t base, qemu_irq irq)
memory_region_add_subregion(sysmem, base, &s->iomem); memory_region_add_subregion(sysmem, base, &s->iomem);
memory_region_init_ram(&s->vram, NULL, "tc6393xb.vram", 0x100000, memory_region_init_ram(&s->vram, NULL, "tc6393xb.vram", 0x100000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->vram); vmstate_register_ram_global(&s->vram);
s->vram_ptr = memory_region_get_ram_ptr(&s->vram); s->vram_ptr = memory_region_get_ram_ptr(&s->vram);
memory_region_add_subregion(sysmem, base + 0x100000, &s->vram); memory_region_add_subregion(sysmem, base + 0x100000, &s->vram);

View File

@ -945,7 +945,7 @@ static void tcx_initfn(Object *obj)
TCXState *s = TCX(obj); TCXState *s = TCX(obj);
memory_region_init_ram(&s->rom, NULL, "tcx.prom", FCODE_MAX_ROM_SIZE, memory_region_init_ram(&s->rom, NULL, "tcx.prom", FCODE_MAX_ROM_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->rom, true); memory_region_set_readonly(&s->rom, true);
sysbus_init_mmio(sbd, &s->rom); sysbus_init_mmio(sbd, &s->rom);
@ -1007,7 +1007,7 @@ static void tcx_realizefn(DeviceState *dev, Error **errp)
char *fcode_filename; char *fcode_filename;
memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram", memory_region_init_ram(&s->vram_mem, OBJECT(s), "tcx.vram",
s->vram_size * (1 + 4 + 4), &error_abort); s->vram_size * (1 + 4 + 4), &error_fatal);
vmstate_register_ram_global(&s->vram_mem); vmstate_register_ram_global(&s->vram_mem);
memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA); memory_region_set_log(&s->vram_mem, true, DIRTY_MEMORY_VGA);
vram_base = memory_region_get_ram_ptr(&s->vram_mem); vram_base = memory_region_get_ram_ptr(&s->vram_mem);

View File

@ -2139,7 +2139,7 @@ void vga_common_init(VGACommonState *s, Object *obj, bool global_vmstate)
s->is_vbe_vmstate = 1; s->is_vbe_vmstate = 1;
memory_region_init_ram(&s->vram, obj, "vga.vram", s->vram_size, memory_region_init_ram(&s->vram, obj, "vga.vram", s->vram_size,
&error_abort); &error_fatal);
vmstate_register_ram(&s->vram, global_vmstate ? NULL : DEVICE(obj)); vmstate_register_ram(&s->vram, global_vmstate ? NULL : DEVICE(obj));
xen_register_framebuffer(&s->vram); xen_register_framebuffer(&s->vram);
s->vram_ptr = memory_region_get_ram_ptr(&s->vram); s->vram_ptr = memory_region_get_ram_ptr(&s->vram);

View File

@ -1244,7 +1244,7 @@ static void vmsvga_init(DeviceState *dev, struct vmsvga_state_s *s,
s->fifo_size = SVGA_FIFO_SIZE; s->fifo_size = SVGA_FIFO_SIZE;
memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size, memory_region_init_ram(&s->fifo_ram, NULL, "vmsvga.fifo", s->fifo_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->fifo_ram); vmstate_register_ram_global(&s->fifo_ram);
s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram); s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram);

View File

@ -1400,7 +1400,7 @@ FWCfgState *pc_memory_init(PCMachineState *pcms,
option_rom_mr = g_malloc(sizeof(*option_rom_mr)); option_rom_mr = g_malloc(sizeof(*option_rom_mr));
memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE, memory_region_init_ram(option_rom_mr, NULL, "pc.rom", PC_ROM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(option_rom_mr); vmstate_register_ram_global(option_rom_mr);
memory_region_add_subregion_overlap(rom_memory, memory_region_add_subregion_overlap(rom_memory,
PC_ROM_MIN_VGA, PC_ROM_MIN_VGA,

View File

@ -56,7 +56,7 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
isa_bios_size = MIN(flash_size, 128 * 1024); isa_bios_size = MIN(flash_size, 128 * 1024);
isa_bios = g_malloc(sizeof(*isa_bios)); isa_bios = g_malloc(sizeof(*isa_bios));
memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size, memory_region_init_ram(isa_bios, NULL, "isa-bios", isa_bios_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(isa_bios); vmstate_register_ram_global(isa_bios);
memory_region_add_subregion_overlap(rom_memory, memory_region_add_subregion_overlap(rom_memory,
0x100000 - isa_bios_size, 0x100000 - isa_bios_size,
@ -193,7 +193,7 @@ static void old_pc_system_rom_init(MemoryRegion *rom_memory, bool isapc_ram_fw)
goto bios_error; goto bios_error;
} }
bios = g_malloc(sizeof(*bios)); bios = g_malloc(sizeof(*bios));
memory_region_init_ram(bios, NULL, "pc.bios", bios_size, &error_abort); memory_region_init_ram(bios, NULL, "pc.bios", bios_size, &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (!isapc_ram_fw) { if (!isapc_ram_fw) {
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -255,12 +255,12 @@ static int milkymist_softusb_init(SysBusDevice *dev)
/* register pmem and dmem */ /* register pmem and dmem */
memory_region_init_ram(&s->pmem, OBJECT(s), "milkymist-softusb.pmem", memory_region_init_ram(&s->pmem, OBJECT(s), "milkymist-softusb.pmem",
s->pmem_size, &error_abort); s->pmem_size, &error_fatal);
vmstate_register_ram_global(&s->pmem); vmstate_register_ram_global(&s->pmem);
s->pmem_ptr = memory_region_get_ram_ptr(&s->pmem); s->pmem_ptr = memory_region_get_ram_ptr(&s->pmem);
sysbus_init_mmio(dev, &s->pmem); sysbus_init_mmio(dev, &s->pmem);
memory_region_init_ram(&s->dmem, OBJECT(s), "milkymist-softusb.dmem", memory_region_init_ram(&s->dmem, OBJECT(s), "milkymist-softusb.dmem",
s->dmem_size, &error_abort); s->dmem_size, &error_fatal);
vmstate_register_ram_global(&s->dmem); vmstate_register_ram_global(&s->dmem);
s->dmem_ptr = memory_region_get_ram_ptr(&s->dmem); s->dmem_ptr = memory_region_get_ram_ptr(&s->dmem);
sysbus_init_mmio(dev, &s->dmem); sysbus_init_mmio(dev, &s->dmem);

View File

@ -54,7 +54,7 @@ static void an5206_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0, ram); memory_region_add_subregion(address_space_mem, 0, ram);
/* Internal SRAM. */ /* Internal SRAM. */
memory_region_init_ram(sram, NULL, "an5206.sram", 512, &error_abort); memory_region_init_ram(sram, NULL, "an5206.sram", 512, &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, AN5206_RAMBAR_ADDR, sram); memory_region_add_subregion(address_space_mem, AN5206_RAMBAR_ADDR, sram);

View File

@ -222,7 +222,7 @@ static void mcf5208evb_init(MachineState *machine)
memory_region_add_subregion(address_space_mem, 0x40000000, ram); memory_region_add_subregion(address_space_mem, 0x40000000, ram);
/* Internal SRAM. */ /* Internal SRAM. */
memory_region_init_ram(sram, NULL, "mcf5208.sram", 16384, &error_abort); memory_region_init_ram(sram, NULL, "mcf5208.sram", 16384, &error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(address_space_mem, 0x80000000, sram); memory_region_add_subregion(address_space_mem, 0x80000000, sram);

View File

@ -92,12 +92,12 @@ petalogix_ml605_init(MachineState *machine)
/* Attach emulated BRAM through the LMB. */ /* Attach emulated BRAM through the LMB. */
memory_region_init_ram(phys_lmb_bram, NULL, "petalogix_ml605.lmb_bram", memory_region_init_ram(phys_lmb_bram, NULL, "petalogix_ml605.lmb_bram",
LMB_BRAM_SIZE, &error_abort); LMB_BRAM_SIZE, &error_fatal);
vmstate_register_ram_global(phys_lmb_bram); vmstate_register_ram_global(phys_lmb_bram);
memory_region_add_subregion(address_space_mem, 0x00000000, phys_lmb_bram); memory_region_add_subregion(address_space_mem, 0x00000000, phys_lmb_bram);
memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size, memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_ram); vmstate_register_ram_global(phys_ram);
memory_region_add_subregion(address_space_mem, MEMORY_BASEADDR, phys_ram); memory_region_add_subregion(address_space_mem, MEMORY_BASEADDR, phys_ram);

View File

@ -71,12 +71,12 @@ petalogix_s3adsp1800_init(MachineState *machine)
/* Attach emulated BRAM through the LMB. */ /* Attach emulated BRAM through the LMB. */
memory_region_init_ram(phys_lmb_bram, NULL, memory_region_init_ram(phys_lmb_bram, NULL,
"petalogix_s3adsp1800.lmb_bram", LMB_BRAM_SIZE, "petalogix_s3adsp1800.lmb_bram", LMB_BRAM_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(phys_lmb_bram); vmstate_register_ram_global(phys_lmb_bram);
memory_region_add_subregion(sysmem, 0x00000000, phys_lmb_bram); memory_region_add_subregion(sysmem, 0x00000000, phys_lmb_bram);
memory_region_init_ram(phys_ram, NULL, "petalogix_s3adsp1800.ram", memory_region_init_ram(phys_ram, NULL, "petalogix_s3adsp1800.ram",
ram_size, &error_abort); ram_size, &error_fatal);
vmstate_register_ram_global(phys_ram); vmstate_register_ram_global(phys_ram);
memory_region_add_subregion(sysmem, ddr_base, phys_ram); memory_region_add_subregion(sysmem, ddr_base, phys_ram);

View File

@ -294,7 +294,7 @@ static void mips_fulong2e_init(MachineState *machine)
/* allocate RAM */ /* allocate RAM */
memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram", ram_size); memory_region_allocate_system_memory(ram, NULL, "fulong2e.ram", ram_size);
memory_region_init_ram(bios, NULL, "fulong2e.bios", bios_size, memory_region_init_ram(bios, NULL, "fulong2e.bios", bios_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -174,7 +174,7 @@ static void mips_jazz_init(MachineState *machine,
memory_region_add_subregion(address_space, 0, ram); memory_region_add_subregion(address_space, 0, ram);
memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_jazz.bios", MAGNUM_BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);
memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios, memory_region_init_alias(bios2, NULL, "mips_jazz.bios", bios,
@ -241,7 +241,7 @@ static void mips_jazz_init(MachineState *machine,
/* Simple ROM, so user doesn't have to provide one */ /* Simple ROM, so user doesn't have to provide one */
MemoryRegion *rom_mr = g_new(MemoryRegion, 1); MemoryRegion *rom_mr = g_new(MemoryRegion, 1);
memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000, memory_region_init_ram(rom_mr, NULL, "g364fb.rom", 0x80000,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom_mr); vmstate_register_ram_global(rom_mr);
memory_region_set_readonly(rom_mr, true); memory_region_set_readonly(rom_mr, true);
uint8_t *rom = memory_region_get_ram_ptr(rom_mr); uint8_t *rom = memory_region_get_ram_ptr(rom_mr);

View File

@ -1120,7 +1120,7 @@ void mips_malta_init(MachineState *machine)
* regions are not executable. * regions are not executable.
*/ */
memory_region_init_ram(bios_copy, NULL, "bios.1fc", BIOS_SIZE, memory_region_init_ram(bios_copy, NULL, "bios.1fc", BIOS_SIZE,
&error_abort); &error_fatal);
if (!rom_copy(memory_region_get_ram_ptr(bios_copy), if (!rom_copy(memory_region_get_ram_ptr(bios_copy),
FLASH_ADDRESS, BIOS_SIZE)) { FLASH_ADDRESS, BIOS_SIZE)) {
memcpy(memory_region_get_ram_ptr(bios_copy), memcpy(memory_region_get_ram_ptr(bios_copy),

View File

@ -174,7 +174,7 @@ mips_mipssim_init(MachineState *machine)
memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram", memory_region_allocate_system_memory(ram, NULL, "mips_mipssim.ram",
ram_size); ram_size);
memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_mipssim.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);

View File

@ -233,7 +233,7 @@ void mips_r4k_init(MachineState *machine)
if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) { if ((bios_size > 0) && (bios_size <= BIOS_SIZE)) {
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "mips_r4k.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
memory_region_set_readonly(bios, true); memory_region_set_readonly(bios, true);
memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios); memory_region_add_subregion(get_system_memory(), 0x1fc00000, bios);

View File

@ -123,11 +123,11 @@ static void moxiesim_init(MachineState *machine)
qemu_register_reset(main_cpu_reset, cpu); qemu_register_reset(main_cpu_reset, cpu);
/* Allocate RAM. */ /* Allocate RAM. */
memory_region_init_ram(ram, NULL, "moxiesim.ram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "moxiesim.ram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(address_space_mem, ram_base, ram); memory_region_add_subregion(address_space_mem, ram_base, ram);
memory_region_init_ram(rom, NULL, "moxie.rom", 128*0x1000, &error_abort); memory_region_init_ram(rom, NULL, "moxie.rom", 128*0x1000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(get_system_memory(), 0x1000, rom); memory_region_add_subregion(get_system_memory(), 0x1000, rom);

View File

@ -463,7 +463,7 @@ static int milkymist_minimac2_init(SysBusDevice *sbd)
/* register buffers memory */ /* register buffers memory */
memory_region_init_ram(&s->buffers, OBJECT(dev), "milkymist-minimac2.buffers", memory_region_init_ram(&s->buffers, OBJECT(dev), "milkymist-minimac2.buffers",
buffers_size, &error_abort); buffers_size, &error_fatal);
vmstate_register_ram_global(&s->buffers); vmstate_register_ram_global(&s->buffers);
s->rx0_buf = memory_region_get_ram_ptr(&s->buffers); s->rx0_buf = memory_region_get_ram_ptr(&s->buffers);
s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE; s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE;

View File

@ -114,7 +114,7 @@ static void openrisc_sim_init(MachineState *machine)
} }
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "openrisc.ram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "openrisc.ram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(get_system_memory(), 0, ram); memory_region_add_subregion(get_system_memory(), 0, ram);

View File

@ -302,7 +302,7 @@ static void raven_realize(PCIDevice *d, Error **errp)
d->config[0x34] = 0x00; // capabilities_pointer d->config[0x34] = 0x00; // capabilities_pointer
memory_region_init_ram(&s->bios, OBJECT(s), "bios", BIOS_SIZE, memory_region_init_ram(&s->bios, OBJECT(s), "bios", BIOS_SIZE,
&error_abort); &error_fatal);
memory_region_set_readonly(&s->bios, true); memory_region_set_readonly(&s->bios, true);
memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE), memory_region_add_subregion(get_system_memory(), (uint32_t)(-BIOS_SIZE),
&s->bios); &s->bios);

View File

@ -2081,7 +2081,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
snprintf(name, sizeof(name), "%s.rom", object_get_typename(OBJECT(pdev))); snprintf(name, sizeof(name), "%s.rom", object_get_typename(OBJECT(pdev)));
} }
pdev->has_rom = true; pdev->has_rom = true;
memory_region_init_ram(&pdev->rom, OBJECT(pdev), name, size, &error_abort); memory_region_init_ram(&pdev->rom, OBJECT(pdev), name, size, &error_fatal);
vmstate_register_ram(&pdev->rom, &pdev->qdev); vmstate_register_ram(&pdev->rom, &pdev->qdev);
ptr = memory_region_get_ram_ptr(&pdev->rom); ptr = memory_region_get_ram_ptr(&pdev->rom);
load_image(path, ptr); load_image(path, ptr);

View File

@ -207,7 +207,7 @@ static void ppc_core99_init(MachineState *machine)
/* allocate and load BIOS */ /* allocate and load BIOS */
memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ppc_core99.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)

View File

@ -135,7 +135,7 @@ static void ppc_heathrow_init(MachineState *machine)
/* allocate and load BIOS */ /* allocate and load BIOS */
memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ppc_heathrow.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)

View File

@ -215,7 +215,8 @@ static void ref405ep_init(MachineState *machine)
33333333, &pic, kernel_filename == NULL ? 0 : 1); 33333333, &pic, kernel_filename == NULL ? 0 : 1);
/* allocate SRAM */ /* allocate SRAM */
sram_size = 512 * 1024; sram_size = 512 * 1024;
memory_region_init_ram(sram, NULL, "ef405ep.sram", sram_size, &error_abort); memory_region_init_ram(sram, NULL, "ef405ep.sram", sram_size,
&error_fatal);
vmstate_register_ram_global(sram); vmstate_register_ram_global(sram);
memory_region_add_subregion(sysmem, 0xFFF00000, sram); memory_region_add_subregion(sysmem, 0xFFF00000, sram);
/* allocate and load BIOS */ /* allocate and load BIOS */
@ -250,7 +251,7 @@ static void ref405ep_init(MachineState *machine)
#endif #endif
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "ef405ep.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
if (bios_name == NULL) if (bios_name == NULL)
@ -579,7 +580,7 @@ static void taihu_405ep_init(MachineState *machine)
bios_name = BIOS_FILENAME; bios_name = BIOS_FILENAME;
bios = g_new(MemoryRegion, 1); bios = g_new(MemoryRegion, 1);
memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE, memory_region_init_ram(bios, NULL, "taihu_405ep.bios", BIOS_SIZE,
&error_abort); &error_fatal);
vmstate_register_ram_global(bios); vmstate_register_ram_global(bios);
filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
if (filename) { if (filename) {

View File

@ -975,7 +975,7 @@ static void ppc405_ocm_init(CPUPPCState *env)
ocm = g_malloc0(sizeof(ppc405_ocm_t)); ocm = g_malloc0(sizeof(ppc405_ocm_t));
/* XXX: Size is 4096 or 0x04000000 */ /* XXX: Size is 4096 or 0x04000000 */
memory_region_init_ram(&ocm->isarc_ram, NULL, "ppc405.ocm", 4096, memory_region_init_ram(&ocm->isarc_ram, NULL, "ppc405.ocm", 4096,
&error_abort); &error_fatal);
vmstate_register_ram_global(&ocm->isarc_ram); vmstate_register_ram_global(&ocm->isarc_ram);
memory_region_init_alias(&ocm->dsarc_ram, NULL, "ppc405.dsarc", &ocm->isarc_ram, memory_region_init_alias(&ocm->dsarc_ram, NULL, "ppc405.dsarc", &ocm->isarc_ram,
0, 4096); 0, 4096);

View File

@ -106,7 +106,7 @@ void s390_memory_init(ram_addr_t mem_size)
MemoryRegion *ram = g_new(MemoryRegion, 1); MemoryRegion *ram = g_new(MemoryRegion, 1);
/* allocate RAM for core */ /* allocate RAM for core */
memory_region_init_ram(ram, NULL, "s390.ram", mem_size, &error_abort); memory_region_init_ram(ram, NULL, "s390.ram", mem_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(sysmem, 0, ram); memory_region_add_subregion(sysmem, 0, ram);

View File

@ -231,7 +231,8 @@ static void assign_storage(SCLPDevice *sclp, SCCB *sccb)
this_subregion_size = mhd->standby_subregion_size; this_subregion_size = mhd->standby_subregion_size;
} }
memory_region_init_ram(standby_ram, NULL, id, this_subregion_size, &error_abort); memory_region_init_ram(standby_ram, NULL, id, this_subregion_size,
&error_fatal);
/* This is a hack to make memory hotunplug work again. Once we have /* This is a hack to make memory hotunplug work again. Once we have
* subdevices, we have to unparent them when unassigning memory, * subdevices, we have to unparent them when unassigning memory,
* instead of doing it via the ref count of the MemoryRegion. */ * instead of doing it via the ref count of the MemoryRegion. */

View File

@ -255,7 +255,7 @@ static void r2d_init(MachineState *machine)
qemu_register_reset(main_cpu_reset, reset_info); qemu_register_reset(main_cpu_reset, reset_info);
/* Allocate memory space */ /* Allocate memory space */
memory_region_init_ram(sdram, NULL, "r2d.sdram", SDRAM_SIZE, &error_abort); memory_region_init_ram(sdram, NULL, "r2d.sdram", SDRAM_SIZE, &error_fatal);
vmstate_register_ram_global(sdram); vmstate_register_ram_global(sdram);
memory_region_add_subregion(address_space_mem, SDRAM_BASE, sdram); memory_region_add_subregion(address_space_mem, SDRAM_BASE, sdram);
/* Register peripherals */ /* Register peripherals */

View File

@ -59,16 +59,16 @@ static void shix_init(MachineState *machine)
} }
/* Allocate memory space */ /* Allocate memory space */
memory_region_init_ram(rom, NULL, "shix.rom", 0x4000, &error_abort); memory_region_init_ram(rom, NULL, "shix.rom", 0x4000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_set_readonly(rom, true); memory_region_set_readonly(rom, true);
memory_region_add_subregion(sysmem, 0x00000000, rom); memory_region_add_subregion(sysmem, 0x00000000, rom);
memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000, memory_region_init_ram(&sdram[0], NULL, "shix.sdram1", 0x01000000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&sdram[0]); vmstate_register_ram_global(&sdram[0]);
memory_region_add_subregion(sysmem, 0x08000000, &sdram[0]); memory_region_add_subregion(sysmem, 0x08000000, &sdram[0]);
memory_region_init_ram(&sdram[1], NULL, "shix.sdram2", 0x01000000, memory_region_init_ram(&sdram[1], NULL, "shix.sdram2", 0x01000000,
&error_abort); &error_fatal);
vmstate_register_ram_global(&sdram[1]); vmstate_register_ram_global(&sdram[1]);
memory_region_add_subregion(sysmem, 0x0c000000, &sdram[1]); memory_region_add_subregion(sysmem, 0x0c000000, &sdram[1]);

View File

@ -156,7 +156,7 @@ static void leon3_generic_hw_init(MachineState *machine)
/* Allocate BIOS */ /* Allocate BIOS */
prom_size = 8 * 1024 * 1024; /* 8Mb */ prom_size = 8 * 1024 * 1024; /* 8Mb */
memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_abort); memory_region_init_ram(prom, NULL, "Leon3.bios", prom_size, &error_fatal);
vmstate_register_ram_global(prom); vmstate_register_ram_global(prom);
memory_region_set_readonly(prom, true); memory_region_set_readonly(prom, true);
memory_region_add_subregion(address_space_mem, 0x00000000, prom); memory_region_add_subregion(address_space_mem, 0x00000000, prom);

View File

@ -641,7 +641,7 @@ static int idreg_init1(SysBusDevice *dev)
IDRegState *s = MACIO_ID_REGISTER(dev); IDRegState *s = MACIO_ID_REGISTER(dev);
memory_region_init_ram(&s->mem, OBJECT(s), memory_region_init_ram(&s->mem, OBJECT(s),
"sun4m.idreg", sizeof(idreg_data), &error_abort); "sun4m.idreg", sizeof(idreg_data), &error_fatal);
vmstate_register_ram_global(&s->mem); vmstate_register_ram_global(&s->mem);
memory_region_set_readonly(&s->mem, true); memory_region_set_readonly(&s->mem, true);
sysbus_init_mmio(dev, &s->mem); sysbus_init_mmio(dev, &s->mem);
@ -688,7 +688,7 @@ static int afx_init1(SysBusDevice *dev)
{ {
AFXState *s = TCX_AFX(dev); AFXState *s = TCX_AFX(dev);
memory_region_init_ram(&s->mem, OBJECT(s), "sun4m.afx", 4, &error_abort); memory_region_init_ram(&s->mem, OBJECT(s), "sun4m.afx", 4, &error_fatal);
vmstate_register_ram_global(&s->mem); vmstate_register_ram_global(&s->mem);
sysbus_init_mmio(dev, &s->mem); sysbus_init_mmio(dev, &s->mem);
return 0; return 0;
@ -763,7 +763,7 @@ static int prom_init1(SysBusDevice *dev)
PROMState *s = OPENPROM(dev); PROMState *s = OPENPROM(dev);
memory_region_init_ram(&s->prom, OBJECT(s), "sun4m.prom", PROM_SIZE_MAX, memory_region_init_ram(&s->prom, OBJECT(s), "sun4m.prom", PROM_SIZE_MAX,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->prom); vmstate_register_ram_global(&s->prom);
memory_region_set_readonly(&s->prom, true); memory_region_set_readonly(&s->prom, true);
sysbus_init_mmio(dev, &s->prom); sysbus_init_mmio(dev, &s->prom);

View File

@ -690,7 +690,7 @@ static int prom_init1(SysBusDevice *dev)
PROMState *s = OPENPROM(dev); PROMState *s = OPENPROM(dev);
memory_region_init_ram(&s->prom, OBJECT(s), "sun4u.prom", PROM_SIZE_MAX, memory_region_init_ram(&s->prom, OBJECT(s), "sun4u.prom", PROM_SIZE_MAX,
&error_abort); &error_fatal);
vmstate_register_ram_global(&s->prom); vmstate_register_ram_global(&s->prom);
memory_region_set_readonly(&s->prom, true); memory_region_set_readonly(&s->prom, true);
sysbus_init_mmio(dev, &s->prom); sysbus_init_mmio(dev, &s->prom);
@ -734,7 +734,7 @@ static int ram_init1(SysBusDevice *dev)
RamDevice *d = SUN4U_RAM(dev); RamDevice *d = SUN4U_RAM(dev);
memory_region_init_ram(&d->ram, OBJECT(d), "sun4u.ram", d->size, memory_region_init_ram(&d->ram, OBJECT(d), "sun4u.ram", d->size,
&error_abort); &error_fatal);
vmstate_register_ram_global(&d->ram); vmstate_register_ram_global(&d->ram);
sysbus_init_mmio(dev, &d->ram); sysbus_init_mmio(dev, &d->ram);
return 0; return 0;

View File

@ -76,17 +76,23 @@ static void tricore_testboard_init(MachineState *machine, int board_id)
exit(1); exit(1);
} }
env = &cpu->env; env = &cpu->env;
memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024, &error_abort); memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024,
&error_fatal);
vmstate_register_ram_global(ext_cram); vmstate_register_ram_global(ext_cram);
memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024, &error_abort); memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024,
&error_fatal);
vmstate_register_ram_global(ext_dram); vmstate_register_ram_global(ext_dram);
memory_region_init_ram(int_cram, NULL, "powerlink_int_c.ram", 48*1024, &error_abort); memory_region_init_ram(int_cram, NULL, "powerlink_int_c.ram", 48*1024,
&error_fatal);
vmstate_register_ram_global(int_cram); vmstate_register_ram_global(int_cram);
memory_region_init_ram(int_dram, NULL, "powerlink_int_d.ram", 48*1024, &error_abort); memory_region_init_ram(int_dram, NULL, "powerlink_int_d.ram", 48*1024,
&error_fatal);
vmstate_register_ram_global(int_dram); vmstate_register_ram_global(int_dram);
memory_region_init_ram(pcp_data, NULL, "powerlink_pcp_data.ram", 16*1024, &error_abort); memory_region_init_ram(pcp_data, NULL, "powerlink_pcp_data.ram", 16*1024,
&error_fatal);
vmstate_register_ram_global(pcp_data); vmstate_register_ram_global(pcp_data);
memory_region_init_ram(pcp_text, NULL, "powerlink_pcp_text.ram", 32*1024, &error_abort); memory_region_init_ram(pcp_text, NULL, "powerlink_pcp_text.ram", 32*1024,
&error_fatal);
vmstate_register_ram_global(pcp_text); vmstate_register_ram_global(pcp_text);
memory_region_add_subregion(sysmem, 0x80000000, ext_cram); memory_region_add_subregion(sysmem, 0x80000000, ext_cram);

View File

@ -75,7 +75,7 @@ static void puv3_board_init(CPUUniCore32State *env, ram_addr_t ram_size)
/* SDRAM at address zero. */ /* SDRAM at address zero. */
memory_region_init_ram(ram_memory, NULL, "puv3.ram", ram_size, memory_region_init_ram(ram_memory, NULL, "puv3.ram", ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram_memory); vmstate_register_ram_global(ram_memory);
memory_region_add_subregion(get_system_memory(), 0, ram_memory); memory_region_add_subregion(get_system_memory(), 0, ram_memory);
} }

View File

@ -79,12 +79,12 @@ static void xtensa_sim_init(MachineState *machine)
} }
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "xtensa.sram", ram_size, &error_abort); memory_region_init_ram(ram, NULL, "xtensa.sram", ram_size, &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(get_system_memory(), 0, ram); memory_region_add_subregion(get_system_memory(), 0, ram);
rom = g_malloc(sizeof(*rom)); rom = g_malloc(sizeof(*rom));
memory_region_init_ram(rom, NULL, "xtensa.rom", 0x1000, &error_abort); memory_region_init_ram(rom, NULL, "xtensa.rom", 0x1000, &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(get_system_memory(), 0xfe000000, rom); memory_region_add_subregion(get_system_memory(), 0xfe000000, rom);

View File

@ -143,7 +143,8 @@ static void lx60_net_init(MemoryRegion *address_space,
sysbus_mmio_get_region(s, 1)); sysbus_mmio_get_region(s, 1));
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, OBJECT(s), "open_eth.ram", 16384, &error_abort); memory_region_init_ram(ram, OBJECT(s), "open_eth.ram", 16384,
&error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(address_space, buffers, ram); memory_region_add_subregion(address_space, buffers, ram);
} }
@ -223,7 +224,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine)
ram = g_malloc(sizeof(*ram)); ram = g_malloc(sizeof(*ram));
memory_region_init_ram(ram, NULL, "lx60.dram", machine->ram_size, memory_region_init_ram(ram, NULL, "lx60.dram", machine->ram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(ram); vmstate_register_ram_global(ram);
memory_region_add_subregion(system_memory, 0, ram); memory_region_add_subregion(system_memory, 0, ram);
@ -275,7 +276,7 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine)
rom = g_malloc(sizeof(*rom)); rom = g_malloc(sizeof(*rom));
memory_region_init_ram(rom, NULL, "lx60.sram", board->sram_size, memory_region_init_ram(rom, NULL, "lx60.sram", board->sram_size,
&error_abort); &error_fatal);
vmstate_register_ram_global(rom); vmstate_register_ram_global(rom);
memory_region_add_subregion(system_memory, 0xfe000000, rom); memory_region_add_subregion(system_memory, 0xfe000000, rom);

4
numa.c
View File

@ -424,14 +424,14 @@ static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner,
*/ */
if (err) { if (err) {
error_report_err(err); error_report_err(err);
memory_region_init_ram(mr, owner, name, ram_size, &error_abort); memory_region_init_ram(mr, owner, name, ram_size, &error_fatal);
} }
#else #else
fprintf(stderr, "-mem-path not supported on this host\n"); fprintf(stderr, "-mem-path not supported on this host\n");
exit(1); exit(1);
#endif #endif
} else { } else {
memory_region_init_ram(mr, owner, name, ram_size, &error_abort); memory_region_init_ram(mr, owner, name, ram_size, &error_fatal);
} }
vmstate_register_ram_global(mr); vmstate_register_ram_global(mr);
} }

View File

@ -213,7 +213,7 @@ static void xen_ram_init(PCMachineState *pcms,
block_len = (1ULL << 32) + pcms->above_4g_mem_size; block_len = (1ULL << 32) + pcms->above_4g_mem_size;
} }
memory_region_init_ram(&ram_memory, NULL, "xen.ram", block_len, memory_region_init_ram(&ram_memory, NULL, "xen.ram", block_len,
&error_abort); &error_fatal);
*ram_memory_p = &ram_memory; *ram_memory_p = &ram_memory;
vmstate_register_ram_global(&ram_memory); vmstate_register_ram_global(&ram_memory);