]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
memory: Factor out common ram ptr initialization
authorBALATON Zoltan <balaton@eik.bme.hu>
Sat, 7 Mar 2026 23:06:08 +0000 (00:06 +0100)
committerPeter Xu <peterx@redhat.com>
Mon, 9 Mar 2026 18:05:55 +0000 (14:05 -0400)
Introduce internal helper function to remove duplicated code from
different memory_region_init_ram_*ptr functions.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Link: https://lore.kernel.org/r/7c5a31fc2202e6927437ed57cb9ce08a224f2a50.1772924151.git.balaton@eik.bme.hu
Signed-off-by: Peter Xu <peterx@redhat.com>
system/memory.c

index 2cda814bd62076c2e3bc541f8fd5ffc43787aca3..f1db72eb42e51b7f42d565bdd5df98707e854000 100644 (file)
@@ -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,