[PATCH v2 0/2] arm64: fix two bug about page table check

From: Liu Shixin
Date: Thu Nov 17 2022 - 02:08:58 EST


Denys Vlasenko has reported two bug about page table check on arm64.
On arm64, pmd_present() contains non-leaf pmd and invalid pmd too.

When collapse hugepage, the pmd is non-leaf and should skip the check.
Use pmd_leaf() instead of pmd_present().

When split hugepage, the pmd will be marked as invalid and then populate.
So we should decrease file_map_count when invalid pmd and then increase
when populate the pmd. Add pmd_valid() check.

v1->v2: Update comment and optimize the code by moving p?d_valid() at
first place suggested by Mark.

Liu Shixin (2):
arm64/mm: fix incorrect file_map_count for non-leaf pmd/pud
arm64/mm: fix incorrect file_map_count for invalid pmd/pud

arch/arm64/include/asm/pgtable.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--
2.25.1