diff options
author | Jeremy Fitzhardinge <jeremy@xensource.com> | 2008-02-13 10:20:35 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-02-13 10:20:35 -0500 |
commit | 2b5407811db755257ae53c75cc6b312ed5d2ad9e (patch) | |
tree | b81a01b5c05aa41bde1830044267990d52b08edb | |
parent | 37cc8d7f963ba2deec29c9b68716944516a3244f (diff) |
xen: unpin initial Xen pagetable once we're finished with it
Unpin the Xen-provided pagetable once we've finished with it, so it
doesn't cause stray references which cause later swapper_pg_dir
pagetable updates to fail.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Tested-by: Jody Belka <knew-linux@pimb.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/xen/enlighten.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index de647bc6e74d..49e5358f481a 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -798,6 +798,10 @@ static __init void xen_pagetable_setup_start(pgd_t *base) | |||
798 | * added to the table can be prepared properly for Xen. | 798 | * added to the table can be prepared properly for Xen. |
799 | */ | 799 | */ |
800 | xen_write_cr3(__pa(base)); | 800 | xen_write_cr3(__pa(base)); |
801 | |||
802 | /* Unpin initial Xen pagetable */ | ||
803 | pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, | ||
804 | PFN_DOWN(__pa(xen_start_info->pt_base))); | ||
801 | } | 805 | } |
802 | 806 | ||
803 | static __init void xen_pagetable_setup_done(pgd_t *base) | 807 | static __init void xen_pagetable_setup_done(pgd_t *base) |