Patchwork [09/17] linux-user: take RESERVED_VA into account for g2h_valid()

login
register
mail settings
Submitter riku.voipio@linaro.org
Date April 6, 2012, 4:35 p.m.
Message ID <39879bbbea4661a4004ca26673e3d1e6ae1e0bc3.1333729958.git.riku.voipio@linaro.org>
Download mbox | patch
Permalink /patch/151248/
State New
Headers show

Comments

riku.voipio@linaro.org - April 6, 2012, 4:35 p.m.
From: Alexander Graf <agraf@suse.de>

When running with -R (RESERVED_VA > 0) all guest virtual addresses
are within the [0..RESERVED_VA] range. Reflect this with g2h_valid()
too so we can safely check for boundaries of our guest address space.

This is required to have the /proc/self/maps code not show maps that
aren't accessible from the guest process's point of view.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
---
 cpu-all.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Patch

diff --git a/cpu-all.h b/cpu-all.h
index 9621c3c..4512518 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -204,7 +204,8 @@  extern unsigned long reserved_va;
 #else
 #define h2g_valid(x) ({ \
     unsigned long __guest = (unsigned long)(x) - GUEST_BASE; \
-    __guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS); \
+    (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
+    (!RESERVED_VA || (__guest < RESERVED_VA)); \
 })
 #endif