[Xen-devel,2/2] tools/xenconsoled: Use XC_PAGE_SIZE rather than getpagesize()

Message ID 1431345336-5476-3-git-send-email-julien.grall@citrix.com
State New
Headers show

Commit Message

Julien Grall May 11, 2015, 11:55 a.m.
From: Julien Grall <julien.grall@linaro.org>

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 console page size will always be equal to a Xen page size, use
XC_PAGE_SIZE.

Signed-off-by: Julien Grall <julien.grall@citrix.com>
---
 tools/console/daemon/io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Patch

diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
index ac08b5b..e246c25 100644
--- a/tools/console/daemon/io.c
+++ b/tools/console/daemon/io.c
@@ -523,7 +523,7 @@  static void domain_unmap_interface(struct domain *dom)
 	if (xcg_handle && dom->ring_ref == -1)
 		xc_gnttab_munmap(xcg_handle, dom->interface, 1);
 	else
-		munmap(dom->interface, getpagesize());
+		munmap(dom->interface, XC_PAGE_SIZE);
 	dom->interface = NULL;
 	dom->ring_ref = -1;
 }
@@ -562,7 +562,7 @@  static int domain_create_ring(struct domain *dom)
 	if (!dom->interface) {
 		/* Fall back to xc_map_foreign_range */
 		dom->interface = xc_map_foreign_range(
-			xc, dom->domid, getpagesize(),
+			xc, dom->domid, XC_PAGE_SIZE,
 			PROT_READ|PROT_WRITE,
 			(unsigned long)ring_ref);
 		if (dom->interface == NULL) {