Message ID | 20210308150600.14440-4-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | RAM_NORESERVE, MAP_NORESERVE and hostmem "reserve" property | expand |
diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 2ba815fec6..d0a0027a16 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -2222,13 +2222,13 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length) abort(); } else { flags = MAP_FIXED; + flags |= block->flags & RAM_SHARED ? + MAP_SHARED : MAP_PRIVATE; if (block->fd >= 0) { - flags |= (block->flags & RAM_SHARED ? - MAP_SHARED : MAP_PRIVATE); area = mmap(vaddr, length, PROT_READ | PROT_WRITE, flags, block->fd, offset); } else { - flags |= MAP_PRIVATE | MAP_ANONYMOUS; + flags |= MAP_ANONYMOUS; area = mmap(vaddr, length, PROT_READ | PROT_WRITE, flags, -1, 0); }
RAM_SHARED now also properly indicates shared anonymous memory. Let's check that flag for anonymous memory as well, to restore the proper mapping. Fixes: 06329ccecfa0 ("mem: add share parameter to memory-backend-ram") Signed-off-by: David Hildenbrand <david@redhat.com> --- softmmu/physmem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)