Patch "x86/mm: implement free pmd/pte page interfaces" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
x86/mm: implement free pmd/pte page interfaces
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-mm-implement-free-pmd-pte-page-interfaces.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
28ee90fe6048fa7b7ceaeb8831c0e4e454a4cf89Mon Sep 17 00:00:00 2001
From: Toshi Kani <[email protected]>
Date: Thu, 22 Mar 2018 16:17:24 -0700
Subject: x86/mm: implement free pmd/pte page interfaces
From: Toshi Kani <[email protected]>
commit 28ee90fe6048fa7b7ceaeb8831c0e4e454a4cf89 upstream.
Implement pud_free_pmd_page() and pmd_free_pte_page() on x86, which clear a given pud/pmd entry and free up lower level page table(s).
The address range associated with the pud/pmd entry must have been purged by INVLPG.
--- arch/x86/mm/pgtable.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-)
arch/x86/mm/pgtable.c +26 -2
@@ -676,7 +676,22 @@ int pmd_clear_huge(pmd_t *pmd)*/ int pud_free_pmd_page (pud_t *pud) { -return pud_none (*pud); +pmd_t *pmd; +int i; + +if (pud_none (*pud)) +return 1 ; + + pmd = (pmd_t *)pud_page_vaddr (*pud); + +for (i =0 ; i <PTRS_PER_PMD ; i++) +if (!pmd_free_pte_page (&pmd[i])) +return 0 ; + +pud_clear (pud); +free_page ((unsigned long )pmd); + +return 1 ; }/**
@@ -688,6 +703,15 @@ int pud_free_pmd_page(pud_t *pud)*/ int pmd_free_pte_page (pmd_t *pmd) { -return pmd_none (*pmd); +pte_t *pte; + +if (pmd_none (*pmd)) +return 1 ; + + pte = (pte_t *)pmd_page_vaddr (*pmd); +pmd_clear (pmd); +free_page ((unsigned long )pte); + +return 1 ; }#endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mm-vmalloc-add-interfaces-to-free-unmapped-page-table.patch queue-4.4/x86-mm-implement-free-pmd-pte-page-interfaces.patch