[Lguest] [PATCH 8/8] lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET

Rusty Russell rusty at rustcorp.com.au
Thu Jul 23 23:47:02 EST 2009


We still assume the Guest and Host have the same PAGE_OFFSET settings,
but now we don't assume 0xC0000000.

Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
Cc: Matias Zabaljauregui <zabaljauregui at gmail.com>
---
 drivers/lguest/page_tables.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
--- a/drivers/lguest/page_tables.c
+++ b/drivers/lguest/page_tables.c
@@ -996,11 +996,9 @@ static unsigned long setup_pagetables(st
 	if (copy_to_user(&pgdir[0], &pgd, sizeof(pgd)) != 0)
 		return -EFAULT;
 	/*
-	 * And the third PGD entry (ie. addresses 3G-4G).
-	 *
-	 * FIXME: This assumes that PAGE_OFFSET for the Guest is 0xC0000000.
+	 * And the other PGD entry to make the linear mapping at PAGE_OFFSET
 	 */
-	if (copy_to_user(&pgdir[3], &pgd, sizeof(pgd)) != 0)
+	if (copy_to_user(&pgdir[PAGE_OFFSET>>PGDIR_SHIFT], &pgd, sizeof(pgd)))
 		return -EFAULT;
 #else
 	/*



More information about the Lguest mailing list