This function is never used, remove it.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
docs/devel/memory.rst | 1 -
include/system/memory.h | 27 ------------
.../memory-region-housekeeping.cocci | 8 ----
system/memory.c | 41 ++++++-------------
4 files changed, 13 insertions(+), 64 deletions(-)
diff --git a/docs/devel/memory.rst b/docs/devel/memory.rst
index f22146e56c..8558f70a42 100644
--- a/docs/devel/memory.rst
+++ b/docs/devel/memory.rst
@@ -114,7 +114,6 @@ the backing memory yourself, you can call the functions:
- memory_region_init_ram_nomigrate()
- memory_region_init_rom_nomigrate()
-- memory_region_init_rom_device_nomigrate()
which only initialize the MemoryRegion and leave handling
migration to the caller.
diff --git a/include/system/memory.h b/include/system/memory.h
index 8f8725ea2d..0562af3136 100644
--- a/include/system/memory.h
+++ b/include/system/memory.h
@@ -1614,33 +1614,6 @@ bool memory_region_init_rom_nomigrate(MemoryRegion *mr,
uint64_t size,
Error **errp);
-/**
- * memory_region_init_rom_device_nomigrate: Initialize a ROM memory region.
- * Writes are handled via callbacks.
- *
- * Note that this function does not do anything to cause the data in the
- * RAM side of the memory region to be migrated; that is the responsibility
- * of the caller.
- *
- * @mr: the #MemoryRegion to be initialized.
- * @owner: the object that tracks the region's reference count
- * @ops: callbacks for write access handling (must not be NULL).
- * @opaque: passed to the read and write callbacks of the @ops structure.
- * @name: Region name, becomes part of RAMBlock name used in migration stream
- * must be unique within any device
- * @size: size of the region.
- * @errp: pointer to Error*, to store an error if it happens.
- *
- * Return: true on success, else false setting @errp with error.
- */
-bool memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
- Object *owner,
- const MemoryRegionOps *ops,
- void *opaque,
- const char *name,
- uint64_t size,
- Error **errp);
-
/**
* memory_region_init_iommu: Initialize a memory region of a custom type
* that translates addresses
diff --git a/scripts/coccinelle/memory-region-housekeeping.cocci b/scripts/coccinelle/memory-region-housekeeping.cocci
index 29651ebde9..7f89e9712e 100644
--- a/scripts/coccinelle/memory-region-housekeeping.cocci
+++ b/scripts/coccinelle/memory-region-housekeeping.cocci
@@ -97,14 +97,6 @@ expression NAME;
expression SIZE;
expression ERRP;
@@
--memory_region_init_rom_device_nomigrate(MR, NULL, OPS, OPAQUE, NAME, SIZE, ERRP);
-+memory_region_init_rom_device(MR, NULL, OPS, OPAQUE, NAME, SIZE, ERRP);
- ...
--vmstate_register_ram_global(MR);
-
-
-// Device is owner
-@@
typedef DeviceState;
identifier device_fn, dev, obj;
expression E1, E2, E3, E4, E5;
diff --git a/system/memory.c b/system/memory.c
index 4bf00d82bc..a9032fb2cf 100644
--- a/system/memory.c
+++ b/system/memory.c
@@ -1748,32 +1748,6 @@ bool memory_region_init_rom_nomigrate(MemoryRegion *mr,
return true;
}
-bool memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
- Object *owner,
- const MemoryRegionOps *ops,
- void *opaque,
- const char *name,
- uint64_t size,
- Error **errp)
-{
- Error *err = NULL;
- assert(ops);
- memory_region_init(mr, owner, name, size);
- mr->ops = ops;
- mr->opaque = opaque;
- mr->terminates = true;
- mr->rom_device = true;
- mr->destructor = memory_region_destructor_ram;
- mr->ram_block = qemu_ram_alloc(size, 0, mr, &err);
- if (err) {
- mr->size = int128_zero();
- object_unparent(OBJECT(mr));
- error_propagate(errp, err);
- return false;
- }
- return true;
-}
-
void memory_region_init_iommu(void *_iommu_mr,
size_t instance_size,
const char *mrtypename,
@@ -3802,9 +3776,20 @@ bool memory_region_init_rom_device(MemoryRegion *mr,
Error **errp)
{
DeviceState *owner_dev;
+ Error *err = NULL;
- if (!memory_region_init_rom_device_nomigrate(mr, owner, ops, opaque,
- name, size, errp)) {
+ assert(ops);
+ memory_region_init(mr, owner, name, size);
+ mr->ops = ops;
+ mr->opaque = opaque;
+ mr->terminates = true;
+ mr->rom_device = true;
+ mr->destructor = memory_region_destructor_ram;
+ mr->ram_block = qemu_ram_alloc(size, 0, mr, &err);
+ if (err) {
+ mr->size = int128_zero();
+ object_unparent(OBJECT(mr));
+ error_propagate(errp, err);
return false;
}
/* This will assert if owner is neither NULL nor a DeviceState.
--
2.41.3
On 29/1/26 17:20, BALATON Zoltan wrote:
> This function is never used, remove it.
>
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
> docs/devel/memory.rst | 1 -
> include/system/memory.h | 27 ------------
> .../memory-region-housekeeping.cocci | 8 ----
> system/memory.c | 41 ++++++-------------
> 4 files changed, 13 insertions(+), 64 deletions(-)
> -bool memory_region_init_rom_device_nomigrate(MemoryRegion *mr,
> - Object *owner,
> - const MemoryRegionOps *ops,
> - void *opaque,
> - const char *name,
> - uint64_t size,
> - Error **errp)
> -{
> - Error *err = NULL;
> - assert(ops);
> - memory_region_init(mr, owner, name, size);
> - mr->ops = ops;
> - mr->opaque = opaque;
> - mr->terminates = true;
> - mr->rom_device = true;
> - mr->destructor = memory_region_destructor_ram;
> - mr->ram_block = qemu_ram_alloc(size, 0, mr, &err);
> - if (err) {
> - mr->size = int128_zero();
> - object_unparent(OBJECT(mr));
> - error_propagate(errp, err);
> - return false;
> - }
> - return true;
> -}
> -
> void memory_region_init_iommu(void *_iommu_mr,
> size_t instance_size,
> const char *mrtypename,
> @@ -3802,9 +3776,20 @@ bool memory_region_init_rom_device(MemoryRegion *mr,
> Error **errp)
> {
> DeviceState *owner_dev;
> + Error *err = NULL;
>
> - if (!memory_region_init_rom_device_nomigrate(mr, owner, ops, opaque,
> - name, size, errp)) {
> + assert(ops);
> + memory_region_init(mr, owner, name, size);
> + mr->ops = ops;
> + mr->opaque = opaque;
> + mr->terminates = true;
> + mr->rom_device = true;
> + mr->destructor = memory_region_destructor_ram;
> + mr->ram_block = qemu_ram_alloc(size, 0, mr, &err);
> + if (err) {
> + mr->size = int128_zero();
> + object_unparent(OBJECT(mr));
> + error_propagate(errp, err);
> return false;
> }
> /* This will assert if owner is neither NULL nor a DeviceState.
The code is actually inlined, not removed. With that clarified:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
© 2016 - 2026 Red Hat, Inc.