tools/xenstored: Use XC_PAGE_SIZE rather than getpagesize()
authorJulien Grall <julien.grall@linaro.org>
Mon, 11 May 2015 11:55:35 +0000 (12:55 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 7 Jul 2015 14:10:45 +0000 (15:10 +0100)
Linux may not use the same page granularity as Xen. This will result to
a domain crash because it will try to map more page than required.

As the xenstore page size willl always be equal to a Xen page size, use
XC_PAGE_SIZE.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/xenstore/xenstored_domain.c

index 6d0394d3f75599609f0a419dc3be023dda307a67..0776e39b6934d7bef5e536e0a5d1064b4e4fdb4e 100644 (file)
@@ -172,7 +172,7 @@ static void *map_interface(domid_t domid, unsigned long mfn)
                        GNTTAB_RESERVED_XENSTORE, PROT_READ|PROT_WRITE);
        } else {
                return xc_map_foreign_range(*xc_handle, domid,
-                       getpagesize(), PROT_READ|PROT_WRITE, mfn);
+                       XC_PAGE_SIZE, PROT_READ|PROT_WRITE, mfn);
        }
 }
 
@@ -181,7 +181,7 @@ static void unmap_interface(void *interface)
        if (*xcg_handle != NULL)
                xc_gnttab_munmap(*xcg_handle, interface, 1);
        else
-               munmap(interface, getpagesize());
+               munmap(interface, XC_PAGE_SIZE);
 }
 
 static int destroy_domain(void *_domain)