Here's my latest draft of a new set of page table manipulation APIs. I've only done alpha, arc and x86 (other than x86, I'm going alphabetically). Before I go much further, some feedback might be a good idea. Or if someone wants to volunteer to do their architecture ;-) Matthew Wilcox (Oracle) (7): mm: Convert page_table_check_pte_set() to page_table_check_ptes_set() mm: Add generic flush_icache_pages() and documentation mm: Add folio_flush_mapping() mm: Remove ARCH_IMPLEMENTS_FLUSH_DCACHE_FOLIO alpha: Implement the new page table range API arc: Implement the new page table range API x86: Implement the new page table range API Documentation/core-api/cachetlb.rst | 35 ++++++------- arch/alpha/include/asm/cacheflush.h | 10 ++++ arch/alpha/include/asm/pgtable.h | 18 ++++++- arch/arc/include/asm/cacheflush.h | 7 ++- arch/arc/include/asm/pgtable-bits-arcv2.h | 20 ++++++-- arch/arc/mm/cache.c | 61 ++++++++++++++--------- arch/arc/mm/tlb.c | 18 ++++--- arch/arm64/include/asm/pgtable.h | 2 +- arch/riscv/include/asm/pgtable.h | 2 +- arch/x86/include/asm/pgtable.h | 21 ++++++-- include/asm-generic/cacheflush.h | 5 ++ include/linux/cacheflush.h | 4 +- include/linux/page_table_check.h | 14 +++--- include/linux/pagemap.h | 26 ++++++++-- mm/page_table_check.c | 14 +++--- mm/util.c | 2 +- 16 files changed, 176 insertions(+), 83 deletions(-) -- 2.39.1