[PATCH] mm: include swap.h in swapops.h

Kiryl Shutsemau posted 1 patch 1 month, 1 week ago
include/linux/swapops.h | 1 +
1 file changed, 1 insertion(+)
[PATCH] mm: include swap.h in swapops.h
Posted by Kiryl Shutsemau 1 month, 1 week ago
From: "Kiryl Shutsemau (Meta)" <kas@kernel.org>

swapops.h uses MAX_SWAPFILES_SHIFT, SWP_MIGRATION_READ and SWP_PTE_MARKER,
all of which swap.h defines, but does not include swap.h.  It compiles only
where the translation unit pulled swap.h in first.  leafops.h includes
swapops.h on the line above swap.h, so a file whose include list reaches
leafops.h before swap.h gets:

    In file included from include/linux/leafops.h:11:
    include/linux/swapops.h:88:21: error: use of undeclared
    identifier 'MAX_SWAPFILES_SHIFT'

A header that uses a definition has to include the header that provides it.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202608181757.mza9RRj7-lkp@intel.com/
Signed-off-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
---
 include/linux/swapops.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/swapops.h b/include/linux/swapops.h
index 1f3ff3b93e16..e7d0d529f3e0 100644
--- a/include/linux/swapops.h
+++ b/include/linux/swapops.h
@@ -5,6 +5,7 @@
 #include <linux/radix-tree.h>
 #include <linux/bug.h>
 #include <linux/mm_types.h>
+#include <linux/swap.h>
 
 #ifdef CONFIG_MMU
 

base-commit: 33f61b12d297562321533c048e034b1fb21c1cf3
-- 
2.54.0
Re: [PATCH] mm: include swap.h in swapops.h
Posted by Lorenzo Stoakes (ARM) 1 month, 1 week ago
On Tue, Aug 18, 2026 at 12:50:26PM +0100, Kiryl Shutsemau wrote:
> From: "Kiryl Shutsemau (Meta)" <kas@kernel.org>
>
> swapops.h uses MAX_SWAPFILES_SHIFT, SWP_MIGRATION_READ and SWP_PTE_MARKER,
> all of which swap.h defines, but does not include swap.h.  It compiles only
> where the translation unit pulled swap.h in first.  leafops.h includes
> swapops.h on the line above swap.h, so a file whose include list reaches
> leafops.h before swap.h gets:
>
>     In file included from include/linux/leafops.h:11:
>     include/linux/swapops.h:88:21: error: use of undeclared
>     identifier 'MAX_SWAPFILES_SHIFT'
>
> A header that uses a definition has to include the header that provides it.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202608181757.mza9RRj7-lkp@intel.com/
> Signed-off-by: Kiryl Shutsemau (Meta) <kas@kernel.org>

Ah C headers are terrible :)

I see that the common pattern is:

#include <swap.h>
#include <swapops.h>

Which is already itself quite horrible, though I suppose intent was to
separate out stuff between the two and to not require that people take
swapops.h necessarily.

Anyway swapops.h needs to be removed, it's a left-over from the
not-quite-fully-complete softleaf work (I left some of the swap
entry-specific stuff alone).

But when that's done by me or whoever else, the resolution should be that
swapops.h is deleted with everything there that needs to be kept around
moved -> leafops since swap entries are just another softleaf type.

Anyway I can fix the broader issue when I get rid of swapops.h, so this
LGTM as a resolution for the time being and:

Reviewed-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>

> ---
>  include/linux/swapops.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/swapops.h b/include/linux/swapops.h
> index 1f3ff3b93e16..e7d0d529f3e0 100644
> --- a/include/linux/swapops.h
> +++ b/include/linux/swapops.h
> @@ -5,6 +5,7 @@
>  #include <linux/radix-tree.h>
>  #include <linux/bug.h>
>  #include <linux/mm_types.h>
> +#include <linux/swap.h>
>
>  #ifdef CONFIG_MMU
>
>
> base-commit: 33f61b12d297562321533c048e034b1fb21c1cf3
> --
> 2.54.0
>

--
Cheers, Lorenzo
Re: [PATCH] mm: include swap.h in swapops.h
Posted by Barry Song 1 month, 1 week ago
On Tue, Aug 18, 2026 at 7:50 PM Kiryl Shutsemau <kirill@shutemov.name> wrote:
>
> From: "Kiryl Shutsemau (Meta)" <kas@kernel.org>
>
> swapops.h uses MAX_SWAPFILES_SHIFT, SWP_MIGRATION_READ and SWP_PTE_MARKER,
> all of which swap.h defines, but does not include swap.h.  It compiles only
> where the translation unit pulled swap.h in first.  leafops.h includes
> swapops.h on the line above swap.h, so a file whose include list reaches
> leafops.h before swap.h gets:
>
>     In file included from include/linux/leafops.h:11:
>     include/linux/swapops.h:88:21: error: use of undeclared
>     identifier 'MAX_SWAPFILES_SHIFT'
>
> A header that uses a definition has to include the header that provides it.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202608181757.mza9RRj7-lkp@intel.com/
> Signed-off-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> ---

Basically, is this preparing for the patchset below?

https://lore.kernel.org/linux-mm/20260816224609.308019-1-kirill@shutemov.name/

Reviewed-by: Barry Song <baohua@kernel.org>
Re: [PATCH] mm: include swap.h in swapops.h
Posted by Kiryl Shutsemau 1 month, 1 week ago
On Wed, Aug 19, 2026 at 01:26:07PM +0800, Barry Song wrote:
> On Tue, Aug 18, 2026 at 7:50 PM Kiryl Shutsemau <kirill@shutemov.name> wrote:
> >
> > From: "Kiryl Shutsemau (Meta)" <kas@kernel.org>
> >
> > swapops.h uses MAX_SWAPFILES_SHIFT, SWP_MIGRATION_READ and SWP_PTE_MARKER,
> > all of which swap.h defines, but does not include swap.h.  It compiles only
> > where the translation unit pulled swap.h in first.  leafops.h includes
> > swapops.h on the line above swap.h, so a file whose include list reaches
> > leafops.h before swap.h gets:
> >
> >     In file included from include/linux/leafops.h:11:
> >     include/linux/swapops.h:88:21: error: use of undeclared
> >     identifier 'MAX_SWAPFILES_SHIFT'
> >
> > A header that uses a definition has to include the header that provides it.
> >
> > Reported-by: kernel test robot <lkp@intel.com>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202608181757.mza9RRj7-lkp@intel.com/
> > Signed-off-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> > ---
> 
> Basically, is this preparing for the patchset below?
> 
> https://lore.kernel.org/linux-mm/20260816224609.308019-1-kirill@shutemov.name/

My patchset just triggered inert bug.

> Reviewed-by: Barry Song <baohua@kernel.org>

Thanks!

-- 
  Kiryl Shutsemau / Kirill A. Shutemov
Re: [PATCH] mm: include swap.h in swapops.h
Posted by Lorenzo Stoakes (ARM) 1 month, 1 week ago
On Wed, Aug 19, 2026 at 03:47:33PM +0100, Kiryl Shutsemau wrote:
> On Wed, Aug 19, 2026 at 01:26:07PM +0800, Barry Song wrote:
> > On Tue, Aug 18, 2026 at 7:50 PM Kiryl Shutsemau <kirill@shutemov.name> wrote:
> > >
> > > From: "Kiryl Shutsemau (Meta)" <kas@kernel.org>
> > >
> > > swapops.h uses MAX_SWAPFILES_SHIFT, SWP_MIGRATION_READ and SWP_PTE_MARKER,
> > > all of which swap.h defines, but does not include swap.h.  It compiles only
> > > where the translation unit pulled swap.h in first.  leafops.h includes
> > > swapops.h on the line above swap.h, so a file whose include list reaches
> > > leafops.h before swap.h gets:
> > >
> > >     In file included from include/linux/leafops.h:11:
> > >     include/linux/swapops.h:88:21: error: use of undeclared
> > >     identifier 'MAX_SWAPFILES_SHIFT'
> > >
> > > A header that uses a definition has to include the header that provides it.
> > >
> > > Reported-by: kernel test robot <lkp@intel.com>
> > > Closes: https://lore.kernel.org/oe-kbuild-all/202608181757.mza9RRj7-lkp@intel.com/
> > > Signed-off-by: Kiryl Shutsemau (Meta) <kas@kernel.org>
> > > ---
> >
> > Basically, is this preparing for the patchset below?
> >
> > https://lore.kernel.org/linux-mm/20260816224609.308019-1-kirill@shutemov.name/
>
> My patchset just triggered inert bug.
>
> > Reviewed-by: Barry Song <baohua@kernel.org>
>
> Thanks!
>
> --
>   Kiryl Shutsemau / Kirill A. Shutemov

Yeah, see my reply, but this is more like 'Lorenzo's unfinished work and a
mistake in his includes' :)

--
Cheers, Lorenzo