Re: [PATCH v2 14/19] mm, swap: sanitize swap entry management workflow
From: Kairui Song
Date: Mon Nov 17 2025 - 08:18:50 EST
On Mon, Nov 17, 2025 at 7:23 PM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> Hi Kairui,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on 41218ede767f6b218185af65ce919d0cade75f6b]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Kairui-Song/mm-swap-rename-__read_swap_cache_async-to-swap_cache_alloc_folio/20251117-021532
> base: 41218ede767f6b218185af65ce919d0cade75f6b
> patch link: https://lore.kernel.org/r/20251117-swap-table-p2-v2-14-37730e6ea6d5%40tencent.com
> patch subject: [PATCH v2 14/19] mm, swap: sanitize swap entry management workflow
> config: s390-defconfig (https://download.01.org/0day-ci/archive/20251117/202511171942.psG9jTRx-lkp@xxxxxxxxx/config)
> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 0bba1e76581bad04e7d7f09f5115ae5e2989e0d9)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251117/202511171942.psG9jTRx-lkp@xxxxxxxxx/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202511171942.psG9jTRx-lkp@xxxxxxxxx/
>
> All errors (new ones prefixed by >>):
>
> >> arch/s390/mm/gmap_helpers.c:35:2: error: call to undeclared function 'free_swap_and_cache'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> 35 | free_swap_and_cache(entry);
> | ^
> arch/s390/mm/gmap_helpers.c:35:2: note: did you mean 'free_swap_cache'?
> include/linux/swap.h:435:6: note: 'free_swap_cache' declared here
> 435 | void free_swap_cache(struct folio *folio);
> | ^
> 1 error generated.
>
>
> vim +/free_swap_and_cache +35 arch/s390/mm/gmap_helpers.c
>
> 200197908dc4af Claudio Imbrenda 2025-05-28 19
> 200197908dc4af Claudio Imbrenda 2025-05-28 20 /**
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 21 * ptep_zap_softleaf_entry() - discard a software leaf entry.
> 200197908dc4af Claudio Imbrenda 2025-05-28 22 * @mm: the mm
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 23 * @entry: the software leaf entry that needs to be zapped
> 200197908dc4af Claudio Imbrenda 2025-05-28 24 *
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 25 * Discards the given software leaf entry. If the leaf entry was an actual
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 26 * swap entry (and not a migration entry, for example), the actual swapped
> 200197908dc4af Claudio Imbrenda 2025-05-28 27 * page is also discarded from swap.
> 200197908dc4af Claudio Imbrenda 2025-05-28 28 */
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 29 static void ptep_zap_softleaf_entry(struct mm_struct *mm, softleaf_t entry)
> 200197908dc4af Claudio Imbrenda 2025-05-28 30 {
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 31 if (softleaf_is_swap(entry))
> 200197908dc4af Claudio Imbrenda 2025-05-28 32 dec_mm_counter(mm, MM_SWAPENTS);
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 33 else if (softleaf_is_migration(entry))
> 6539cf8c98a8cc Lorenzo Stoakes 2025-11-10 34 dec_mm_counter(mm, mm_counter(softleaf_to_folio(entry)));
> 200197908dc4af Claudio Imbrenda 2025-05-28 @35 free_swap_and_cache(entry);
> 200197908dc4af Claudio Imbrenda 2025-05-28 36 }
> 200197908dc4af Claudio Imbrenda 2025-05-28 37
Ops, not sure why this callsite was missed during the renaming
conversion, probably lost it during a rebase as there are some
conflicts here. This should fix it:
diff --git a/arch/s390/mm/gmap_helpers.c b/arch/s390/mm/gmap_helpers.c
index 549f14ad08af..c3f56a096e8c 100644
--- a/arch/s390/mm/gmap_helpers.c
+++ b/arch/s390/mm/gmap_helpers.c
@@ -32,7 +32,7 @@ static void ptep_zap_softleaf_entry(struct mm_struct
*mm, softleaf_t entry)
dec_mm_counter(mm, MM_SWAPENTS);
else if (softleaf_is_migration(entry))
dec_mm_counter(mm, mm_counter(softleaf_to_folio(entry)));
- free_swap_and_cache(entry);
+ swap_put_entries_direct(entry, 1);
}
Will include it in the next update.