lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET
Rusty Russell [Thu, 24 Sep 2009 04:26:46 +0000 (22:26 -0600)]
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@rustcorp.com.au>
Cc: Matias Zabaljauregui <zabaljauregui@gmail.com>

drivers/lguest/page_tables.c

index 232fba6..bf37a31 100644 (file)
@@ -996,11 +996,9 @@ static unsigned long setup_pagetables(struct lguest *lg,
        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[KERNEL_PGD_BOUNDARY], &pgd, sizeof(pgd)))
                return -EFAULT;
 #else
        /*