|
@@ -61,6 +61,7 @@ void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte)
|
|
|
#if PAGETABLE_LEVELS > 2
|
|
|
void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
|
|
|
{
|
|
|
+ struct page *page = virt_to_page(pmd);
|
|
|
paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT);
|
|
|
/*
|
|
|
* NOTE! For PAE, any changes to the top page-directory-pointer-table
|
|
@@ -69,7 +70,8 @@ void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
tlb->need_flush_all = 1;
|
|
|
#endif
|
|
|
- tlb_remove_page(tlb, virt_to_page(pmd));
|
|
|
+ pgtable_pmd_page_dtor(page);
|
|
|
+ tlb_remove_page(tlb, page);
|
|
|
}
|
|
|
|
|
|
#if PAGETABLE_LEVELS > 3
|