Message ID | 20230823153412.832081-5-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | memory-backend-file related improvements and VM templating support | expand |
On Wed, Aug 23, 2023 at 05:34:04PM +0200, David Hildenbrand wrote: > Let's remap with the proper protection that we can derive from > RAM_READONLY. > > Signed-off-by: David Hildenbrand <david@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com>
On 23/8/23 17:34, David Hildenbrand wrote: > Let's remap with the proper protection that we can derive from > RAM_READONLY. > > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > softmmu/physmem.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/softmmu/physmem.c b/softmmu/physmem.c index 6add537b2a..c09eda6303 100644 --- a/softmmu/physmem.c +++ b/softmmu/physmem.c @@ -2070,6 +2070,7 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length) ram_addr_t offset; int flags; void *area, *vaddr; + int prot; RAMBLOCK_FOREACH(block) { offset = addr - block->offset; @@ -2084,13 +2085,14 @@ void qemu_ram_remap(ram_addr_t addr, ram_addr_t length) flags |= block->flags & RAM_SHARED ? MAP_SHARED : MAP_PRIVATE; flags |= block->flags & RAM_NORESERVE ? MAP_NORESERVE : 0; + prot = PROT_READ; + prot |= block->flags & RAM_READONLY ? 0 : PROT_WRITE; if (block->fd >= 0) { - area = mmap(vaddr, length, PROT_READ | PROT_WRITE, - flags, block->fd, offset + block->fd_offset); + area = mmap(vaddr, length, prot, flags, block->fd, + offset + block->fd_offset); } else { flags |= MAP_ANONYMOUS; - area = mmap(vaddr, length, PROT_READ | PROT_WRITE, - flags, -1, 0); + area = mmap(vaddr, length, prot, flags, -1, 0); } if (area != vaddr) { error_report("Could not remap addr: "
Let's remap with the proper protection that we can derive from RAM_READONLY. Signed-off-by: David Hildenbrand <david@redhat.com> --- softmmu/physmem.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)