• Martin Schwidefsky's avatar
    mm: add mm_pxd_folded checks to pgtable_bytes accounting functions · 6d212db1
    Martin Schwidefsky authored
    The common mm code calls mm_dec_nr_pmds() and mm_dec_nr_puds()
    in free_pgtables() if the address range spans a full pud or pmd.
    If mm_dec_nr_puds/mm_dec_nr_pmds are non-empty due to configuration
    settings they blindly subtract the size of the pmd or pud table from
    pgtable_bytes even if the pud or pmd page table layer is folded.
    
    Add explicit mm_[pmd|pud]_folded checks to the four pgtable_bytes
    accounting functions mm_inc_nr_puds, mm_inc_nr_pmds, mm_dec_nr_puds
    and mm_dec_nr_pmds. As the check for folded page tables can be
    overwritten by the architecture, this allows to keep a correct
    pgtable_bytes value for platforms that use a dynamic number of
    page table levels.
    Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    6d212db1
mm.h 87.1 KB