On Tue, Aug 18, 2026 at 04:18:47PM +0200, David Hildenbrand (Arm) wrote:
> On 8/18/26 15:29, Lorenzo Stoakes (ARM) wrote:
> > On Tue, Aug 18, 2026 at 03:11:50PM +0200, David Hildenbrand (Arm) wrote:
> >> On 8/18/26 13:49, Hemanth Selam wrote:
> >>> pkey-helpers.h defines PKEY_UNRESTRICTED itself when the macro is not
> >>> already known, a stopgap from when the generic definition was still
> >>> under review.  It has been merged since, commit 6d61527d931b ("mm/pkey:
> >>> Add PKEY_UNRESTRICTED macro"), and pkey-helpers.h already includes
> >>> <linux/mman.h>, so the guard is never taken.  Honour the FIXME and drop
> >>> it.
> >>>
> >>> The mm selftests build against the headers of the kernel source, see
> >>> Documentation/dev-tools/kselftest.rst.  Building them without "make
> >
> > This is incorrect. We explicitly do not have this requirement in mm 
> > selftests,
> > and they're often built without having to do this step and tooling has been
> > provided _explicitly_ to allow for that, which is why this kind of thing 
> > exists
> > right now.
> >
> >>> headers", against system headers predating the macro, now fails to
> >>> compile instead of quietly falling back.
> >>>
> >>> No functional change intended.
> >>>
> >>> Signed-off-by: Hemanth Selam <[email protected]>
> >>> ---
> >>>  tools/testing/selftests/mm/pkey-helpers.h | 7 -------
> >>>  1 file changed, 7 deletions(-)
> >>>
> >>> diff --git a/tools/testing/selftests/mm/pkey-helpers.h 
> >>> b/tools/testing/selftests/mm/pkey-helpers.h
> >>> index 2c377f4e9df1..626c2e1655dc 100644
> >>> --- a/tools/testing/selftests/mm/pkey-helpers.h
> >>> +++ b/tools/testing/selftests/mm/pkey-helpers.h
> >>> @@ -112,13 +112,6 @@ void record_pkey_malloc(void *ptr, long size, int 
> >>> prot);
> >>>  #define PKEY_MASK        (PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE)
> >>>  #endif
> >>>
> >>> -/*
> >>> - * FIXME: Remove once the generic PKEY_UNRESTRICTED definition is merged.
> >>> - */
> >>> -#ifndef PKEY_UNRESTRICTED
> >>> -#define PKEY_UNRESTRICTED 0x0
> >>> -#endif
> >>> -
> >>>  #ifndef set_pkey_bits
> >>>  static inline u64 set_pkey_bits(u64 reg, int pkey, u64 flags)
> >>>  {
> >>
> >> tools/include/uapi/asm-generic/mman-common.h:#define PKEY_UNRESTRICTED  0x0
> >>
> >> So that looks good.
> >>
> >> But we seem to have the same ifdef also in
> >> tools/testing/selftests/powerpc/include/pkeys.h.
> >>
> >> So likely that should be removed as well (after making sure that it 
> >> compiles?)
> >
> > It will break people right now :) it might compile on one system but not
> > another.
>
> I thought once we have stuff in tools/include/uapi/asm-generic/ headers that 
> it
> should work?
>
> The dependency on "make headers" was the problematic bit IIUC.
>
> But this stuff is always confusing me ...

Yeah I did go check over there :) but for a lot of stuff we don't have that and
it's not really the right place (that's more providing userland stubs, etc.)

Yeah it's confusing and a pain and sometimes we break these things but in
general I don't think the #ifndef/#define's are too problematic to keep.

But it might be worth checking in this case to see whether the problem here
is in fact that we need PKEY_UNRESTRICTED defined over there?

Hemanth - could you check please?

>
> --
> Cheers,
>
> David

--
Cheers, Lorenzo

Reply via email to