diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-08-28 13:09:02 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-08-28 13:09:02 +0100 |
commit | e388539d78dba35310647f2d4b5b3b54a8f8755b (patch) | |
tree | 67b9f9bbf96f7edd7d853f3a2899f98a9b5de2ee /extras/mini-os | |
parent | c07e22cf605a75ce9c6f3a0ffe4b48cf5eab9c60 (diff) | |
download | xen-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')
-rw-r--r-- | extras/mini-os/lib/sys.c | 11 |
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); |