|
@@ -1952,7 +1952,11 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram_addr_t max_size,
|
|
ERRP_GUARD();
|
|
ERRP_GUARD();
|
|
RAMBlock *new_block;
|
|
RAMBlock *new_block;
|
|
Error *local_err = NULL;
|
|
Error *local_err = NULL;
|
|
- int64_t file_size, file_align;
|
|
|
|
|
|
+ int64_t file_size, file_align, share_flags;
|
|
|
|
+
|
|
|
|
+ share_flags = ram_flags & (RAM_PRIVATE | RAM_SHARED);
|
|
|
|
+ assert(share_flags != (RAM_SHARED | RAM_PRIVATE));
|
|
|
|
+ ram_flags &= ~RAM_PRIVATE;
|
|
|
|
|
|
/* Just support these ram flags by now. */
|
|
/* Just support these ram flags by now. */
|
|
assert((ram_flags & ~(RAM_SHARED | RAM_PMEM | RAM_NORESERVE |
|
|
assert((ram_flags & ~(RAM_SHARED | RAM_PMEM | RAM_NORESERVE |
|
|
@@ -2097,7 +2101,11 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size,
|
|
{
|
|
{
|
|
RAMBlock *new_block;
|
|
RAMBlock *new_block;
|
|
Error *local_err = NULL;
|
|
Error *local_err = NULL;
|
|
- int align;
|
|
|
|
|
|
+ int align, share_flags;
|
|
|
|
+
|
|
|
|
+ share_flags = ram_flags & (RAM_PRIVATE | RAM_SHARED);
|
|
|
|
+ assert(share_flags != (RAM_SHARED | RAM_PRIVATE));
|
|
|
|
+ ram_flags &= ~RAM_PRIVATE;
|
|
|
|
|
|
assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE | RAM_PREALLOC |
|
|
assert((ram_flags & ~(RAM_SHARED | RAM_RESIZEABLE | RAM_PREALLOC |
|
|
RAM_NORESERVE | RAM_GUEST_MEMFD)) == 0);
|
|
RAM_NORESERVE | RAM_GUEST_MEMFD)) == 0);
|
|
@@ -2172,7 +2180,8 @@ RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host,
|
|
RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags,
|
|
RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags,
|
|
MemoryRegion *mr, Error **errp)
|
|
MemoryRegion *mr, Error **errp)
|
|
{
|
|
{
|
|
- assert((ram_flags & ~(RAM_SHARED | RAM_NORESERVE | RAM_GUEST_MEMFD)) == 0);
|
|
|
|
|
|
+ assert((ram_flags & ~(RAM_SHARED | RAM_NORESERVE | RAM_GUEST_MEMFD |
|
|
|
|
+ RAM_PRIVATE)) == 0);
|
|
return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp);
|
|
return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, errp);
|
|
}
|
|
}
|
|
|
|
|