|
@@ -863,15 +863,16 @@ static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned l
|
|
if (PagePinned(virt_to_page(mm->pgd))) {
|
|
if (PagePinned(virt_to_page(mm->pgd))) {
|
|
SetPagePinned(page);
|
|
SetPagePinned(page);
|
|
|
|
|
|
|
|
+ vm_unmap_aliases();
|
|
if (!PageHighMem(page)) {
|
|
if (!PageHighMem(page)) {
|
|
make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
|
|
make_lowmem_page_readonly(__va(PFN_PHYS((unsigned long)pfn)));
|
|
if (level == PT_PTE && USE_SPLIT_PTLOCKS)
|
|
if (level == PT_PTE && USE_SPLIT_PTLOCKS)
|
|
pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
|
|
pin_pagetable_pfn(MMUEXT_PIN_L1_TABLE, pfn);
|
|
- } else
|
|
|
|
|
|
+ } else {
|
|
/* make sure there are no stray mappings of
|
|
/* make sure there are no stray mappings of
|
|
this page */
|
|
this page */
|
|
kmap_flush_unused();
|
|
kmap_flush_unused();
|
|
- vm_unmap_aliases();
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|