The quilt patch titled Subject: fixup: mm/debug_vm_pgtable: more pte_swp_exclusive() sanity checks has been removed from the -mm tree. Its filename was mm-debug_vm_pgtable-more-pte_swp_exclusive-sanity-checks-fix.patch This patch was dropped because it was folded into mm-debug_vm_pgtable-more-pte_swp_exclusive-sanity-checks.patch ------------------------------------------------------ From: David Hildenbrand <david@xxxxxxxxxx> Subject: fixup: mm/debug_vm_pgtable: more pte_swp_exclusive() sanity checks Date: Sat, 14 Jan 2023 16:47:12 +0100 generic_max_swapfile_size() is only available with CONFIG_SWAP -- which makes sense, because without SWAP there are no swap files. Let's simply probe manually which bits we can obtain after storing them in a PTE, and properly call it "max swap offset", which is more generic for a swap entry. Link: https://lkml.kernel.org/r/6aaad548-cf48-77fa-9d6c-db83d724b2eb@xxxxxxxxxx Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> Reported-by: kernel test robot <lkp@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- --- a/mm/debug_vm_pgtable.c~mm-debug_vm_pgtable-more-pte_swp_exclusive-sanity-checks-fix +++ a/mm/debug_vm_pgtable.c @@ -811,15 +811,17 @@ static void __init pmd_swap_soft_dirty_t static void __init pte_swap_exclusive_tests(struct pgtable_debug_args *args) { #ifdef __HAVE_ARCH_PTE_SWP_EXCLUSIVE - unsigned long max_swapfile_size = generic_max_swapfile_size(); + unsigned long max_swap_offset; swp_entry_t entry, entry2; pte_t pte; pr_debug("Validating PTE swap exclusive\n"); + /* See generic_max_swapfile_size(): probe the maximum offset */ + max_swap_offset = swp_offset(pte_to_swp_entry(swp_entry_to_pte(swp_entry(0, ~0UL)))); + /* Create a swp entry with all possible bits set */ - entry = swp_entry((1 << MAX_SWAPFILES_SHIFT) - 1, - max_swapfile_size - 1); + entry = swp_entry((1 << MAX_SWAPFILES_SHIFT) - 1, max_swap_offset); pte = swp_entry_to_pte(entry); WARN_ON(pte_swp_exclusive(pte)); _ Patches currently in -mm which might be from david@xxxxxxxxxx are mm-debug_vm_pgtable-more-pte_swp_exclusive-sanity-checks.patch alpha-mm-support-__have_arch_pte_swp_exclusive.patch arc-mm-support-__have_arch_pte_swp_exclusive.patch arm-mm-support-__have_arch_pte_swp_exclusive.patch csky-mm-support-__have_arch_pte_swp_exclusive.patch hexagon-mm-support-__have_arch_pte_swp_exclusive.patch ia64-mm-support-__have_arch_pte_swp_exclusive.patch loongarch-mm-support-__have_arch_pte_swp_exclusive.patch m68k-mm-remove-dummy-__swp-definitions-for-nommu.patch m68k-mm-support-__have_arch_pte_swp_exclusive.patch microblaze-mm-support-__have_arch_pte_swp_exclusive.patch mips-mm-support-__have_arch_pte_swp_exclusive.patch nios2-mm-refactor-swap-pte-layout.patch nios2-mm-support-__have_arch_pte_swp_exclusive.patch openrisc-mm-support-__have_arch_pte_swp_exclusive.patch parisc-mm-support-__have_arch_pte_swp_exclusive.patch powerpc-mm-support-__have_arch_pte_swp_exclusive-on-32bit-book3s.patch powerpc-nohash-mm-support-__have_arch_pte_swp_exclusive.patch riscv-mm-support-__have_arch_pte_swp_exclusive.patch sh-mm-support-__have_arch_pte_swp_exclusive.patch sparc-mm-support-__have_arch_pte_swp_exclusive-on-32bit.patch sparc-mm-support-__have_arch_pte_swp_exclusive-on-64bit.patch um-mm-support-__have_arch_pte_swp_exclusive.patch x86-mm-support-__have_arch_pte_swp_exclusive-also-on-32bit.patch xtensa-mm-support-__have_arch_pte_swp_exclusive.patch mm-remove-__have_arch_pte_swp_exclusive.patch