| From: Madhavan Srinivasan <maddy@linux.ibm.com> |
| Subject: selftests/mm: fix build break when compiling pkey_util.c |
| Date: Mon, 28 Apr 2025 18:49:34 +0530 |
| |
| Commit 50910acd6f615 ("selftests/mm: use sys_pkey helpers consistently") |
| added a pkey_util.c to refactor some of the protection_keys functions |
| accessible by other tests. But this broken the build in powerpc in two |
| ways, |
| |
| pkey-powerpc.h: In function `arch_is_powervm': |
| pkey-powerpc.h:73:21: error: storage size of `buf' isn't known |
| 73 | struct stat buf; |
| | ^~~ |
| pkey-powerpc.h:75:14: error: implicit declaration of function `stat'; did you mean `strcat'? [-Wimplicit-function-declaration] |
| 75 | if ((stat("/sys/firmware/devicetree/base/ibm,partition-name", &buf) == 0) && |
| | ^~~~ |
| | strcat |
| |
| Since pkey_util.c includes pkeys-helper.h, which in turn includes pkeys-powerpc.h, |
| stat.h including is missing for "struct stat". This is fixed by adding "sys/stat.h" |
| in pkeys-powerpc.h |
| |
| Secondly, |
| |
| pkey-powerpc.h:55:18: warning: format `%llx' expects argument of type `long long unsigned int', but argument 3 has type `u64' {aka `long unsigned int'} [-Wformat=] |
| 55 | dprintf4("%s() changing %016llx to %016llx\n", |
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 56 | __func__, __read_pkey_reg(), pkey_reg); |
| | ~~~~~~~~~~~~~~~~~ |
| | | |
| | u64 {aka long unsigned int} |
| pkey-helpers.h:63:32: note: in definition of macro `dprintf_level' |
| 63 | sigsafe_printf(args); \ |
| | ^~~~ |
| |
| These format specifier related warning are removed by adding |
| "__SANE_USERSPACE_TYPES__" to pkeys_utils.c. |
| |
| Link: https://lkml.kernel.org/r/20250428131937.641989-1-nysal@linux.ibm.com |
| Fixes: 50910acd6f61 ("selftests/mm: use sys_pkey helpers consistently") |
| Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> |
| Signed-off-by: Nysal Jan K.A. <nysal@linux.ibm.com> |
| Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/mm/pkey-powerpc.h | 2 ++ |
| tools/testing/selftests/mm/pkey_util.c | 1 + |
| 2 files changed, 3 insertions(+) |
| |
| --- a/tools/testing/selftests/mm/pkey-powerpc.h~selftests-mm-fix-build-break-when-compiling-pkey_utilc |
| +++ a/tools/testing/selftests/mm/pkey-powerpc.h |
| @@ -3,6 +3,8 @@ |
| #ifndef _PKEYS_POWERPC_H |
| #define _PKEYS_POWERPC_H |
| |
| +#include <sys/stat.h> |
| + |
| #ifndef SYS_pkey_alloc |
| # define SYS_pkey_alloc 384 |
| # define SYS_pkey_free 385 |
| --- a/tools/testing/selftests/mm/pkey_util.c~selftests-mm-fix-build-break-when-compiling-pkey_utilc |
| +++ a/tools/testing/selftests/mm/pkey_util.c |
| @@ -1,4 +1,5 @@ |
| // SPDX-License-Identifier: GPL-2.0-only |
| +#define __SANE_USERSPACE_TYPES__ |
| #include <sys/syscall.h> |
| #include <unistd.h> |
| |
| _ |