[Lguest] [PATCH 8/8] lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET
Rusty Russell
rusty at rustcorp.com.au
Fri Jul 24 18:31:24 EST 2009
On Fri, 24 Jul 2009 04:18:04 am Matias Zabaljauregui wrote:
> Hi Rusty,
>
> maybe KERNEL_PGD_BOUNDARY macro (include/asm/pgtable.h) can
> be used here instead ?
Ah, excellent! I didn't know about that!
Patch now looks like:
lguest: use PGDIR_SHIFT for PAE code to allow different PAGE_OFFSET
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[KERNEL_PGD_BOUNDARY], &pgd, sizeof(pgd)))
return -EFAULT;
#else
/*
More information about the Lguest
mailing list