From be4e1e871242a92bd67c7aced18784e6c04eab49 Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Tue, 7 Apr 2020 10:32:54 +0200 Subject: [PATCH] vmm: memory: Use fine grained mmap wrapper In order to anticipate the need for special mmap flags when memory mapping the guest RAM, we need to switch from from_file() wrapper to build() wrapper. Signed-off-by: Sebastien Boeuf --- vmm/src/memory_manager.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index 6ab80cbec..fe91f4312 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -436,9 +436,15 @@ impl MemoryManager { f.set_len(size as u64).map_err(Error::SharedFileSetLen)?; + let mmap_flags = libc::MAP_NORESERVE | libc::MAP_SHARED; GuestRegionMmap::new( - MmapRegion::from_file(FileOffset::new(f, 0), size) - .map_err(Error::GuestMemoryRegion)?, + MmapRegion::build( + Some(FileOffset::new(f, 0)), + size, + libc::PROT_READ | libc::PROT_WRITE, + mmap_flags, + ) + .map_err(Error::GuestMemoryRegion)?, start_addr, ) .map_err(Error::GuestMemory)?