aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/lib
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-08-28 13:09:02 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-08-28 13:09:02 +0100
commite388539d78dba35310647f2d4b5b3b54a8f8755b (patch)
tree67b9f9bbf96f7edd7d853f3a2899f98a9b5de2ee /extras/mini-os/lib
parentc07e22cf605a75ce9c6f3a0ffe4b48cf5eab9c60 (diff)
downloadxen-e388539d78dba35310647f2d4b5b3b54a8f8755b.tar.gz
xen-e388539d78dba35310647f2d4b5b3b54a8f8755b.tar.bz2
xen-e388539d78dba35310647f2d4b5b3b54a8f8755b.zip
stubdom: fix munmap's update_va_mapping flag passing, thus fixing
INVLPG passing Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/lib')
-rw-r--r--extras/mini-os/lib/sys.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c
index 47bbbda39e..4285449991 100644
--- a/extras/mini-os/lib/sys.c
+++ b/extras/mini-os/lib/sys.c
@@ -1221,11 +1221,14 @@ int munmap(void *start, size_t length)
int ret;
for (i = 0; i < n; i++) {
+ int arg = 0;
call[i].op = __HYPERVISOR_update_va_mapping;
- call[i].args[0] = (unsigned long) &data[i];
- call[i].args[1] = 0;
- call[i].args[2] = 0;
- call[i].args[3] = UVMF_INVLPG;
+ call[i].args[arg++] = (unsigned long) &data[i];
+ call[i].args[arg++] = 0;
+#ifdef __i386__
+ call[i].args[arg++] = 0;
+#endif
+ call[i].args[arg++] = UVMF_INVLPG;
}
ret = HYPERVISOR_multicall(call, n);