[PATCH] uml: fix x86_64 page leak
We were leaking pmd pages when 3_LEVEL_PGTABLES was enabled. This fixes that. Signed-off-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Linus Torvalds

vecāks
f9dfefe423
revīzija
7ef9390541
@@ -56,6 +56,9 @@ static int init_stub_pte(struct mm_struct *mm, unsigned long proc,
|
||||
*/
|
||||
|
||||
mm->context.skas.last_page_table = pmd_page_kernel(*pmd);
|
||||
#ifdef CONFIG_3_LEVEL_PGTABLES
|
||||
mm->context.skas.last_pmd = (unsigned long) __va(pud_val(*pud));
|
||||
#endif
|
||||
|
||||
*pte = mk_pte(virt_to_page(kernel), __pgprot(_PAGE_PRESENT));
|
||||
*pte = pte_mkexec(*pte);
|
||||
@@ -144,6 +147,10 @@ void destroy_context_skas(struct mm_struct *mm)
|
||||
|
||||
if(!proc_mm || !ptrace_faultinfo){
|
||||
free_page(mmu->id.stack);
|
||||
free_page(mmu->last_page_table);
|
||||
pte_free_kernel((pte_t *) mmu->last_page_table);
|
||||
dec_page_state(nr_page_table_pages);
|
||||
#ifdef CONFIG_3_LEVEL_PGTABLES
|
||||
pmd_free((pmd_t *) mmu->last_pmd);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user