summary refs log tree commit diff
path: root/vm_control/src
diff options
context:
space:
mode:
authorZach Reizner <zachr@google.com>2018-02-05 16:00:14 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-02-06 21:32:39 -0800
commite0e8e56732801c63f5c836827e473665e1e12c29 (patch)
tree348f2cc5569501c2e789b5b3f17a9ebf02c77609 /vm_control/src
parenta912b2cf76a78d3331e32679d474e621622e5060 (diff)
downloadcrosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar.gz
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar.bz2
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar.lz
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar.xz
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.tar.zst
crosvm-e0e8e56732801c63f5c836827e473665e1e12c29.zip
kvm: support adding read only memory to VMs
Read only memory is useful for triggering VM exits when the VM writes to
memory while allowing reads transparently and quickly. For example, a
virtual device implementation might not care if the VM reads a memory
mapped device register, but a exit would be required if the VM wrote to
the same register.

TEST=cargo test -p kvm; ./build_test
BUG=chromium:800626

Change-Id: Ic605b2cfc2a1e44941d91945f9390b9abb820040
Reviewed-on: https://chromium-review.googlesource.com/903075
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'vm_control/src')
-rw-r--r--vm_control/src/lib.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm_control/src/lib.rs b/vm_control/src/lib.rs
index 6688077..dbcbece 100644
--- a/vm_control/src/lib.rs
+++ b/vm_control/src/lib.rs
@@ -205,7 +205,7 @@ impl VmRequest {
                 };
                 let pfn = *next_mem_pfn;
                 let slot =
-                    match vm.add_device_memory(GuestAddress(pfn << 12), mmap, false) {
+                    match vm.add_device_memory(GuestAddress(pfn << 12), mmap, false, false) {
                         Ok(slot) => slot,
                         Err(e) => return VmResponse::Err(e),
                     };