[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 04/11] softmmu/physmem: Remap with proper protection in qemu_r
From: |
David Hildenbrand |
Subject: |
[PATCH v4 04/11] softmmu/physmem: Remap with proper protection in qemu_ram_remap() |
Date: |
Wed, 6 Sep 2023 14:04:56 +0200 |
Let's remap with the proper protection that we can derive from
RAM_READONLY.
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
softmmu/physmem.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/softmmu/physmem.c b/softmmu/physmem.c
index 7e03ed7e3e..88482bd32a 100644
--- a/softmmu/physmem.c
+++ b/softmmu/physmem.c
@@ -2069,6 +2069,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;
@@ -2083,13 +2084,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: "
--
2.41.0
- [PATCH v4 00/11] memory-backend-file related improvements and VM templating support, David Hildenbrand, 2023/09/06
- [PATCH v4 01/11] nvdimm: Reject writing label data to ROM instead of crashing QEMU, David Hildenbrand, 2023/09/06
- [PATCH v4 02/11] softmmu/physmem: Distinguish between file access mode and mmap protection, David Hildenbrand, 2023/09/06
- [PATCH v4 03/11] backends/hostmem-file: Add "rom" property to support VM templating with R/O files, David Hildenbrand, 2023/09/06
- [PATCH v4 05/11] softmmu/physmem: Bail out early in ram_block_discard_range() with readonly files, David Hildenbrand, 2023/09/06
- [PATCH v4 08/11] docs: Don't mention "-mem-path" in multi-process.rst, David Hildenbrand, 2023/09/06
- [PATCH v4 04/11] softmmu/physmem: Remap with proper protection in qemu_ram_remap(),
David Hildenbrand <=
- [PATCH v4 09/11] docs: Start documenting VM templating, David Hildenbrand, 2023/09/06
- [PATCH v4 10/11] softmmu/physmem: Hint that "readonly=on, rom=off" exists when opening file R/W for private mapping fails, David Hildenbrand, 2023/09/06
- [PATCH v4 11/11] machine: Improve error message when using default RAM backend id, David Hildenbrand, 2023/09/06
- [PATCH v4 07/11] softmmu/physmem: Never return directories from file_ram_open(), David Hildenbrand, 2023/09/06
- [PATCH v4 06/11] softmmu/physmem: Fail creation of new files in file_ram_open() with readonly=true, David Hildenbrand, 2023/09/06
- Re: [PATCH v4 00/11] memory-backend-file related improvements and VM templating support, David Hildenbrand, 2023/09/11