Message ID | 1308750171-12578-3-git-send-email-stefan.bader@canonical.com |
---|---|
State | New |
Headers | show |
diff --git a/arch/x86/mm/pgtable_32-xen.c b/arch/x86/mm/pgtable_32-xen.c index 48242aa..49e28e7 100644 --- a/arch/x86/mm/pgtable_32-xen.c +++ b/arch/x86/mm/pgtable_32-xen.c @@ -473,8 +473,12 @@ void pgd_free(pgd_t *pgd) pmd_cache_free(pmd, i); } - if (!xen_feature(XENFEAT_pae_pgdir_above_4gb)) - xen_destroy_contiguous_region((unsigned long)pgd, 0); +#ifdef CONFIG_XEN + if (!SHARED_KERNEL_PMD) + if (!xen_feature(XENFEAT_pae_pgdir_above_4gb)) + xen_destroy_contiguous_region( + (unsigned long)pgd, 0); +#endif } /* in the non-PAE case, free_pgtables() clears user pgd entries */
The call to create is only done for !SHARED_KERNEL_PMD, so only destroy in that case (also this is only useful when CONFIG_XEN is set. BugLink: http://bugs.launchpad.net/bugs/705562 Signed-off-by: Stefan Bader <stefan.bader@canonical.com> --- arch/x86/mm/pgtable_32-xen.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)