-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
selftests/mm: use sys_pkey helpers consistently
sys_pkey_alloc, sys_pkey_free and sys_mprotect_pkey are currently used in protections_keys.c, while pkey_sighandler_tests.c calls the libc wrappers directly (e.g. pkey_mprotect()). This is probably ok when using glibc (those symbols appeared a while ago), but Musl does not currently provide them. The logging in the helpers from pkey-helpers.h can also come in handy. Make things more consistent by using the sys_pkey helpers in pkey_sighandler_tests.c too. To that end their implementation is moved to a common .c file (pkey_util.c). This also enables calling is_pkeys_supported() outside of protections_keys.c, since it relies on sys_pkey_{alloc,free}. [kevin.brodsky@arm.com: fix dependency on pkey_util.c] Link: https://lkml.kernel.org/r/20241216092849.2140850-1-kevin.brodsky@arm.com Link: https://lkml.kernel.org/r/20241209095019.1732120-12-kevin.brodsky@arm.com Signed-off-by: Kevin Brodsky <kevin.brodsky@arm.com> Cc: Aruna Ramakrishna <aruna.ramakrishna@oracle.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Joey Gouly <joey.gouly@arm.com> Cc: Keith Lucas <keith.lucas@oracle.com> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Shuah Khan <shuah@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
- Loading branch information
Kevin Brodsky
authored and
Andrew Morton
committed
Jan 14, 2025
1 parent
b0cc298
commit 50910ac
Showing
5 changed files
with
50 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// SPDX-License-Identifier: GPL-2.0-only | ||
#include <sys/syscall.h> | ||
#include <unistd.h> | ||
|
||
#include "pkey-helpers.h" | ||
|
||
int sys_pkey_alloc(unsigned long flags, unsigned long init_val) | ||
{ | ||
int ret = syscall(SYS_pkey_alloc, flags, init_val); | ||
dprintf1("%s(flags=%lx, init_val=%lx) syscall ret: %d errno: %d\n", | ||
__func__, flags, init_val, ret, errno); | ||
return ret; | ||
} | ||
|
||
int sys_pkey_free(unsigned long pkey) | ||
{ | ||
int ret = syscall(SYS_pkey_free, pkey); | ||
dprintf1("%s(pkey=%ld) syscall ret: %d\n", __func__, pkey, ret); | ||
return ret; | ||
} | ||
|
||
int sys_mprotect_pkey(void *ptr, size_t size, unsigned long orig_prot, | ||
unsigned long pkey) | ||
{ | ||
int sret; | ||
|
||
dprintf2("%s(0x%p, %zx, prot=%lx, pkey=%lx)\n", __func__, | ||
ptr, size, orig_prot, pkey); | ||
|
||
errno = 0; | ||
sret = syscall(__NR_pkey_mprotect, ptr, size, orig_prot, pkey); | ||
if (errno) { | ||
dprintf2("SYS_mprotect_key sret: %d\n", sret); | ||
dprintf2("SYS_mprotect_key prot: 0x%lx\n", orig_prot); | ||
dprintf2("SYS_mprotect_key failed, errno: %d\n", errno); | ||
if (DEBUG_LEVEL >= 2) | ||
perror("SYS_mprotect_pkey"); | ||
} | ||
return sret; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters