The kernel page table caches are tied to init_mm, so there is no
more need for them after userspace is finished.

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
 arch/powerpc/mm/mmu_context_book3s64.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/mm/mmu_context_book3s64.c 
b/arch/powerpc/mm/mmu_context_book3s64.c
index 3bb5cec03d1f..5738c2db751c 100644
--- a/arch/powerpc/mm/mmu_context_book3s64.c
+++ b/arch/powerpc/mm/mmu_context_book3s64.c
@@ -221,7 +221,7 @@ static void pmd_frag_destroy(void *pmd_frag)
        }
 }
 
-static void destroy_pagetable_page(struct mm_struct *mm)
+static void destroy_pagetable_cache(struct mm_struct *mm)
 {
        void *frag;
 
@@ -244,13 +244,14 @@ void destroy_context(struct mm_struct *mm)
                WARN_ON(process_tb[mm->context.id].prtb0 != 0);
        else
                subpage_prot_free(mm);
-       destroy_pagetable_page(mm);
        destroy_contexts(&mm->context);
        mm->context.id = MMU_NO_CONTEXT;
 }
 
 void arch_exit_mmap(struct mm_struct *mm)
 {
+       destroy_pagetable_cache(mm);
+
        if (radix_enabled()) {
                /*
                 * Radix doesn't have a valid bit in the process table
-- 
2.17.0

Reply via email to