Re: [PATCH] mm: add some missing includes to mm-local headers

"Lorenzo Stoakes (ARM)" <[email protected]> Tue, 4 Aug 2026 12:05:40 +0100
Newsgroups org.kernel.vger.cgroups,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <anHG7BcQ8EFrwvGm@lucifer>
On Tue, Aug 04, 2026 at 12:51:40PM +0200, David Hildenbrand (Arm) wrote:
> On 8/4/26 12:45, David Hildenbrand (Arm) wrote:
> > On 8/4/26 12:08, Lorenzo Stoakes (ARM) wrote:
> >> There are a number of internal headers local to mm/ which reference
> >> functions and data types without including the relevant headers.
> >>
> >> mm/vma.h is a special case that intentionally does not include additional
> >> headers, but the others are not.
> >>
> >> This breaks tooling like clangd (which is where I noticed this), though the
> >> build is OK due to the C files including the headers happening to include
> >> required dependencies.
> >>
> >> It's better to be explicit about dependencies anyway, so add the missing
> >> includes and fix clangd as a bonus.
> >
> > I'm curious, how did you identify these? The mm/vmalloc.h is rather easy, but I wonder about
> > e.g., mm/shuffle.h including mmzone.h.
> >
>
> To clarify, I have clangd running behind a vim plugin, and so far it just worked.
>
> I had to generate a weird XML at some point that does magical things for clangd.

Well for me I get the kernel build to generate compiler_commands.json and use
that via:

	scripts/clang-tools/gen_compile_commands.py vmlinux.a arch/x86/boot/

In a build script.

But maybe I need your weird XML... I do get frustrated that it limits things to
what I happened to compile. It'd be nice to get it to index literally everything
somehow.

>
> So I'm curious how to invoke clangd manually to actually get these reports.

See other reply, it's just that I noticed missing symbols.

Actually this happened with vma.h (I sloppily got AI to figure out any other
cases) which _intentionally_ doesn't have includes.

But clangd lets you work around that in .clangd:

If:
  PathMatch: mm/vma\.h
CompileFlags:
  Add: [-include, mm/vma_internal.h]

:)

>
> --
> Cheers,
>
> David

--
Cheers, Lorenzo