diff options
Diffstat (limited to 'system/physmem.c')
| -rw-r--r-- | system/physmem.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/system/physmem.c b/system/physmem.c index 2fb0c25..e5ff26a 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2827,6 +2827,34 @@ found: } /* + * Creates new guest memfd for the ramblocks and closes the + * existing memfd. + */ +int ram_block_rebind(Error **errp) +{ + RAMBlock *block; + + qemu_mutex_lock_ramlist(); + + RAMBLOCK_FOREACH(block) { + if (block->flags & RAM_GUEST_MEMFD) { + if (block->guest_memfd >= 0) { + close(block->guest_memfd); + } + block->guest_memfd = kvm_create_guest_memfd(block->max_length, + 0, errp); + if (block->guest_memfd < 0) { + qemu_mutex_unlock_ramlist(); + return -1; + } + + } + } + qemu_mutex_unlock_ramlist(); + return 0; +} + +/* * Finds the named RAMBlock * * name: The name of RAMBlock to find |
