On Mon, Dec 09, 2024 at 09:50:16AM +0000, Kevin Brodsky wrote: Hi Kevin, Andrew, > diff --git a/tools/testing/selftests/mm/Makefile b/tools/testing/selftests/mm/Makefile > index 814b17a43385..1f0743d9459d 100644 > --- a/tools/testing/selftests/mm/Makefile > +++ b/tools/testing/selftests/mm/Makefile > @@ -147,8 +147,8 @@ TEST_FILES += write_hugetlb_memory.sh > > include ../lib.mk > > -$(TEST_GEN_PROGS): vm_util.c thp_settings.c > -$(TEST_GEN_FILES): vm_util.c thp_settings.c > +$(TEST_GEN_PROGS): vm_util.c thp_settings.c pkey_util.c > +$(TEST_GEN_FILES): vm_util.c thp_settings.c pkey_util.c This patch breaks s390 in -next with the below error messages: In file included from pkey_util.c:5: pkey-helpers.h:109:2: error: #error Architecture not supported 109 | #error Architecture not supported | ^~~~~ pkey-helpers.h: In function ‘set_pkey_bits’: pkey-helpers.h:126:21: error: implicit declaration of function ‘pkey_bit_position’ [-Wimplicit-function-declaration] 126 | u32 shift = pkey_bit_position(pkey); | ^~~~~~~~~~~~~~~~~ pkey-helpers.h: In function ‘_read_pkey_reg’: pkey-helpers.h:151:24: error: implicit declaration of function ‘__read_pkey_reg’; did you mean ‘_read_pkey_reg’? [-Wimplicit-function-declaration] 151 | u64 pkey_reg = __read_pkey_reg(); | ^~~~~~~~~~~~~~~ | _read_pkey_reg pkey-helpers.h: In function ‘write_pkey_reg’: pkey-helpers.h:165:18: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘int’ [-Wformat=] 165 | dprintf4("%s() changing %016llx to %016llx\n", __func__, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 166 | __read_pkey_reg(), pkey_reg); | ~~~~~~~~~~~~~~~~~ | | | int pkey-helpers.h:62:32: note: in definition of macro ‘dprintf_level’ 62 | sigsafe_printf(args); \ | ^~~~ pkey-helpers.h:165:9: note: in expansion of macro ‘dprintf4’ 165 | dprintf4("%s() changing %016llx to %016llx\n", __func__, | ^~~~~~~~ pkey-helpers.h:165:39: note: format string is defined here 165 | dprintf4("%s() changing %016llx to %016llx\n", __func__, | ~~~~~~^ | | | long long unsigned int | %016x pkey-helpers.h:169:9: error: implicit declaration of function ‘__write_pkey_reg’; did you mean ‘write_pkey_reg’? [-Wimplicit-function-declaration] 169 | __write_pkey_reg(pkey_reg); | ^~~~~~~~~~~~~~~~ | write_pkey_reg pkey-helpers.h:171:18: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘int’ [-Wformat=] 171 | dprintf4("%s(%016llx) pkey_reg: %016llx\n", __func__, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 172 | pkey_reg, __read_pkey_reg()); | ~~~~~~~~~~~~~~~~~ | | | int pkey-helpers.h:62:32: note: in definition of macro ‘dprintf_level’ 62 | sigsafe_printf(args); \ | ^~~~ pkey-helpers.h:171:9: note: in expansion of macro ‘dprintf4’ 171 | dprintf4("%s(%016llx) pkey_reg: %016llx\n", __func__, | ^~~~~~~~ pkey-helpers.h:171:47: note: format string is defined here 171 | dprintf4("%s(%016llx) pkey_reg: %016llx\n", __func__, | ~~~~~~^ | | | long long unsigned int | %016x pkey-helpers.h: In function ‘is_pkeys_supported’: pkey-helpers.h:207:14: error: implicit declaration of function ‘cpu_has_pkeys’; did you mean ‘kernel_has_pkeys’? [-Wimplicit-function-declaration] 207 | if (!cpu_has_pkeys()) { | ^~~~~~~~~~~~~ | kernel_has_pkeys Please, let me know if I am missing something. > $(OUTPUT)/uffd-stress: uffd-common.c > $(OUTPUT)/uffd-unit-tests: uffd-common.c Thanks!