@samitouri / QOSamiQemu / commits / 7f116e951d

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 <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>

BALATON Zoltan committed Mar 8, 2026 at 00:06 UTC 7f116e951d80dbe63e39bb55acf4f6acea4c04bd
1 file changed +11 -12
system/memory.c
+11 -12
@@ -1649,31 +1649,30 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr, Object *owner,
1649 }
1650 #endif
1651
1652 +static void memory_region_set_ram_ptr(MemoryRegion *mr, uint64_t size,
1653 + void *ptr)
1654 +{
1655 + /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1656 + assert(ptr != NULL);
1657 + RAMBlock *rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1658 + memory_region_set_ram_block(mr, rb);
1659 +}
1660 +
1661 void memory_region_init_ram_ptr(MemoryRegion *mr, Object *owner,
1662 const char *name, uint64_t size,
1663 void *ptr)
1664 {
1656 - RAMBlock *rb;
1657 -
1665 memory_region_init(mr, owner, name, size);
1659 - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1660 - assert(ptr != NULL);
1661 - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1662 - memory_region_set_ram_block(mr, rb);
1666 + memory_region_set_ram_ptr(mr, size, ptr);
1667 }
1668
1669 void memory_region_init_ram_device_ptr(MemoryRegion *mr, Object *owner,
1670 const char *name, uint64_t size,
1671 void *ptr)
1672 {
1669 - RAMBlock *rb;
1670 -
1673 memory_region_init_io(mr, owner, &ram_device_mem_ops, mr, name, size);
1674 mr->ram_device = true;
1673 - /* qemu_ram_alloc_from_ptr cannot fail with ptr != NULL. */
1674 - assert(ptr != NULL);
1675 - rb = qemu_ram_alloc_from_ptr(size, ptr, mr, &error_abort);
1676 - memory_region_set_ram_block(mr, rb);
1675 + memory_region_set_ram_ptr(mr, size, ptr);
1676 }
1677
1678 void memory_region_init_alias(MemoryRegion *mr, Object *owner,