Subject: linux-next: build failure after merge of the mm-unstable tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 11 Sep 2025 16:05:10 +1000

Hi all,

After merging the mm-unstable tree, today's linux-next build (x86_64
allnoconfig) failed like this:

In file included from mm/shmem.c:44:
mm/swap.h: In function 'folio_index':
mm/swap.h:462:24: error: implicit declaration of function 'swp_offset'; did you mean 'pud_offset'? [-Wimplicit-function-declaration]
  462 |                 return swp_offset(folio->swap);
      |                        ^~~~~~~~~~
      |                        pud_offset
In file included from mm/shmem.c:69:
include/linux/swapops.h: At top level:
include/linux/swapops.h:107:23: error: conflicting types for 'swp_offset'; have 'long unsigned int(swp_entry_t)'
  107 | static inline pgoff_t swp_offset(swp_entry_t entry)
      |                       ^~~~~~~~~~
mm/swap.h:462:24: note: previous implicit declaration of 'swp_offset' with type 'int()'
  462 |                 return swp_offset(folio->swap);
      |                        ^~~~~~~~~~

Caused by commit

  c2079bb89a0c ("mm, swap: use the swap table for the swap cache and switch API")

but not fixed by commit

  9b84186b7053 ("mm-swap-use-the-swap-table-for-the-swap-cache-and-switch-api-fix")

I applied this hack:

From: Stephen Rothwell <[email-masked]>
Date: Thu, 11 Sep 2025 15:51:25 +1000
Subject: [PATCH] hack for "mm, swap: use the swap table for the swap cache and
 switch API"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 mm/swap.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mm/swap.h b/mm/swap.h
index ad339547ee8c..8428026aa8d7 100644
--- a/mm/swap.h
+++ b/mm/swap.h
@@ -458,8 +458,10 @@ static inline int non_swapcache_batch(swp_entry_t entry, int max_nr)
 static inline pgoff_t folio_index(struct folio *folio)
 {
 #ifdef CONFIG_MMU
+#ifdef CONFIG_SWAP
 	if (unlikely(folio_test_swapcache(folio)))
 		return swp_offset(folio->swap);
+#endif
 #endif
 	return folio->index;
 }
-- 
2.51.0

-- 
Cheers,
Stephen Rothwell