mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
util: vfio-helpers: Factor out and fix processing of existing ram blocks
Factor it out into common code when a new notifier is registered, just as done with the memory region notifier. This keeps logic about how to process existing ram blocks at a central place. Just like when adding a new ram block, we have to register the max_length. Ram blocks are only "fake resized". All memory (max_length) is mapped. Print the warning from inside qemu_vfio_ram_block_added(). Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Message-Id: <20210429112708.12291-2-david@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
372043f389
commit
082851a3af
4 changed files with 28 additions and 21 deletions
|
@ -802,9 +802,23 @@ void query_numa_node_mem(NumaNodeMem node_mem[], MachineState *ms)
|
|||
}
|
||||
}
|
||||
|
||||
static int ram_block_notify_add_single(RAMBlock *rb, void *opaque)
|
||||
{
|
||||
const ram_addr_t max_size = qemu_ram_get_max_length(rb);
|
||||
void *host = qemu_ram_get_host_addr(rb);
|
||||
RAMBlockNotifier *notifier = opaque;
|
||||
|
||||
if (host) {
|
||||
notifier->ram_block_added(notifier, host, max_size);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ram_block_notifier_add(RAMBlockNotifier *n)
|
||||
{
|
||||
QLIST_INSERT_HEAD(&ram_list.ramblock_notifiers, n, next);
|
||||
/* Notify about all existing ram blocks. */
|
||||
qemu_ram_foreach_block(ram_block_notify_add_single, n);
|
||||
}
|
||||
|
||||
void ram_block_notifier_remove(RAMBlockNotifier *n)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue