Last argument passed down in note_page() is u64 assuming pxd_val() returned value (all page table levels) is 64 bit - which might not be the case going ahead when D128 page tables is enabled on arm64 platform. Besides pxd_val() is very platform specific and its type should not be assumed in generic MM.
This series splits note_page() into individual page table level specific callbacks which accepts corresponding pxd_t page table entry as an argument instead and later all subscribing platforms could derive pxd_val() from the entries as required and proceed as before. Page table entry's value, mask and protection are represented with pteval_t not u64 that has been assumed while dumping the page table entries on arm64 platform. Replace such u64 instances with pteval_t instead as expected. This series has been tested on arm64 platform but it does build on other relevant platforms (v6.14-rc7). Changes in V1: - Added note_page_flush() callback and implemented the same on all subscribing platforms - Moved note_page() argument change from u64 to pteval_t on arm64 platform from second patch to the first patch instead Changes in RFC: https://lore.kernel.org/all/[email protected]/ Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Cc: Steven Price <[email protected]> Cc: Ryan Roberts <[email protected]> Cc: Madhavan Srinivasan <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Paul Walmsley <[email protected]> Cc: Palmer Dabbelt <[email protected]> Cc: Gerald Schaefer <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Andrew Morton <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Anshuman Khandual (2): mm/ptdump: Split note_page() into level specific callbacks arm64/ptdump: Replace u64 with pteval_t arch/arm64/include/asm/ptdump.h | 24 ++++++++++++---- arch/arm64/mm/ptdump.c | 50 ++++++++++++++++++++++++++++++--- arch/powerpc/mm/ptdump/ptdump.c | 46 ++++++++++++++++++++++++++++-- arch/riscv/mm/ptdump.c | 46 ++++++++++++++++++++++++++++-- arch/s390/mm/dump_pagetables.c | 46 ++++++++++++++++++++++++++++-- arch/x86/mm/dump_pagetables.c | 39 ++++++++++++++++++++++++- include/linux/ptdump.h | 9 ++++-- mm/ptdump.c | 42 ++++++++++++++++++++------- 8 files changed, 272 insertions(+), 30 deletions(-) -- 2.25.1
