The patch titled Subject: selftests: vm: remove dependecy from internal kernel macros has been added to the -mm tree. Its filename is selftests-vm-remove-dependecy-from-internal-kernel-macros.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/selftests-vm-remove-dependecy-from-internal-kernel-macros.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/selftests-vm-remove-dependecy-from-internal-kernel-macros.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx> Subject: selftests: vm: remove dependecy from internal kernel macros The defination of swap() is used from kernel's internal header when this test is built in source tree. The build fails when this test is built out of source tree as defination of swap() isn't found. Selftests shouldn't depend on kernel's internal header files. They can only depend on uapi header files. Add the defination of swap() to fix the build error: gcc -Wall -I/linux_mainline2/build/usr/include -no-pie userfaultfd.c -lrt -lpthread -o /linux_mainline2/build/kselftest/vm/userfaultfd userfaultfd.c: In function `userfaultfd_stress': userfaultfd.c:1530:3: warning: implicit declaration of function `swap'; did you mean `swab'? [-Wimplicit-function-declaration] 1530 | swap(area_src, area_dst); | ^~~~ | swab /usr/bin/ld: /tmp/cclUUH7V.o: in function `userfaultfd_stress': userfaultfd.c:(.text+0x4d64): undefined reference to `swap' /usr/bin/ld: userfaultfd.c:(.text+0x4d82): undefined reference to `swap' collect2: error: ld returned 1 exit status Link: https://lkml.kernel.org/r/20220119101531.2850400-11-usama.anjum@xxxxxxxxxxxxx Fixes: 2c769ed7137a ("tools/testing/selftests/vm/userfaultfd.c: use swap() to make code cleaner") Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx> Reviewed-by: Alistair Popple <apopple@xxxxxxxxxx> Cc: Andr Almeida <andrealmeid@xxxxxxxxxxxxx> Cc: Darren Hart <dvhart@xxxxxxxxxxxxx> Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Jakub Kicinski <kuba@xxxxxxxxxx> Cc: Mat Martineau <mathew.j.martineau@xxxxxxxxxxxxxxx> Cc: Matthieu Baerts <matthieu.baerts@xxxxxxxxxxxx> Cc: Mickal Salan <mic@xxxxxxxxxxx> Cc: Minghao Chi <chi.minghao@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Shuah Khan <shuah@xxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- tools/testing/selftests/vm/userfaultfd.c | 3 +++ 1 file changed, 3 insertions(+) --- a/tools/testing/selftests/vm/userfaultfd.c~selftests-vm-remove-dependecy-from-internal-kernel-macros +++ a/tools/testing/selftests/vm/userfaultfd.c @@ -119,6 +119,9 @@ struct uffd_stats { ~(unsigned long)(sizeof(unsigned long long) \ - 1))) +#define swap(a, b) \ + do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) + const char *examples = "# Run anonymous memory test on 100MiB region with 99999 bounces:\n" "./userfaultfd anon 100 99999\n\n" _ Patches currently in -mm which might be from usama.anjum@xxxxxxxxxxxxx are selftests-set-the-build-variable-to-absolute-path.patch selftests-add-and-export-a-kernel-uapi-headers-path.patch selftests-correct-the-headers-install-path.patch selftests-futex-add-the-uapi-headers-include-variable.patch selftests-kvm-add-the-uapi-headers-include-variable.patch selftests-landlock-add-the-uapi-headers-include-variable.patch selftests-net-add-the-uapi-headers-include-variable.patch selftests-mptcp-add-the-uapi-headers-include-variable.patch selftests-vm-add-the-uapi-headers-include-variable.patch selftests-vm-remove-dependecy-from-internal-kernel-macros.patch