From: BALATON Zoltan Date: Sat, 7 Mar 2026 23:06:08 +0000 (+0100) Subject: memory: Factor out common ram ptr initialization X-Git-Tag: v11.0.0-rc0~22^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f116e951d80dbe63e39bb55acf4f6acea4c04bd;p=thirdparty%2Fqemu.git memory: Factor out common ram ptr initialization Introduce internal helper function to remove duplicated code from different memory_region_init_ram_*ptr functions. Signed-off-by: BALATON Zoltan Link: https://lore.kernel.org/r/7c5a31fc2202e6927437ed57cb9ce08a224f2a50.1772924151.git.balaton@eik.bme.hu Signed-off-by: Peter Xu --- diff --git a/system/memory.c b/system/memory.c index 2cda814bd62..f1db72eb42e 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1649,31 +1649,30 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr, Object *owner, } #endif +static void memory_region_set_ram_ptr(MemoryRegion *mr, uint64_t size, + void *ptr) +{ + /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ + assert(ptr != NULL); + RAMBlock *rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); + memory_region_set_ram_block(mr, rb); +} + void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner, const char *name, uint64_t size, void *ptr) { - RAMBlock *rb; - memory_region_init(mr, owner, name, size); - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ - assert(ptr != NULL); - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); - memory_region_set_ram_block(mr, rb); + memory_region_set_ram_ptr(mr, size, ptr); } void memory_region_init_ram_device_ptr(MemoryRegion *mr, Object *owner, const char *name, uint64_t size, void *ptr) { - RAMBlock *rb; - memory_region_init_io(mr, owner, &ram_device_mem_ops, mr, name, size); mr->ram_device = true; - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */ - assert(ptr != NULL); - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort); - memory_region_set_ram_block(mr, rb); + memory_region_set_ram_ptr(mr, size, ptr); } void memory_region_init_alias(MemoryRegion *mr, Object *owner,