On 2/13/25 3:32 AM, Li Wang wrote:
Hi John,

On Thu, Feb 13, 2025 at 6:31 AM John Hubbard <jhubb...@nvidia.com 
<mailto:jhubb...@nvidia.com>> wrote:

    On 2/12/25 12:34 PM, Dave Hansen wrote:
     > Hi John,
     >
     > On 6/13/24 19:30, John Hubbard wrote:
     >> --- a/tools/testing/selftests/mm/protection_keys.c
     >> +++ b/tools/testing/selftests/mm/protection_keys.c
     >> @@ -42,7 +42,7 @@
     >>   #include <sys/wait.h>
     >>   #include <sys/stat.h>
     >>   #include <fcntl.h>
     >> -#include <unistd.h>
     >> +#include <linux/unistd.h>
     >>   #include <sys/ptrace.h>
     >>   #include <setjmp.h>
     >
     > I'm not quite sure how but this broke the protection_keys.c selftest for
     > me. Before this commit (a5c6bc590094a1a73cf6fa3f505e1945d2bf2461) things
     > are fine.  But after, I get:
     >
     >       running PKEY tests for unsupported CPU/OS
     >
     > The "unsupported" test just makes a pkey_alloc() syscall. It's probably
     > calling the wrong syscall number or something.
     >
     > I think it's still broken in mainline. What's the right fix?

    omg I think this is an asm-generic include mistake, I'll check
    on it in an hour or so, in more depth.


I just found that mlock2_() return a wrong valuein mlock2-test,
I guess that was caused by including the wrong header file
<asm-generic/unistd.h>,which might define a different syscall
number than what the kernel uses on the test system.

Agreed.


Shouldn't we make use of <unistd.h> directly?

Well, yes and no. For now, there appear to be two commits involved
in causing these problems, and the __NR_* parts need to be reverted.

I'll explain more when I post later today, but for the moment, the
first, mseal- related commit below has some hints about how we got
here:

504d8a5e0fd4 selftests/mm: mseal, self_elf: fix missing __NR_mseal
a5c6bc590094 selftests/mm: remove local __NR_* definitions


thanks,
--
John Hubbard


Reply via email to