summaryrefslogtreecommitdiff
path: root/src/prctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/prctl.c')
-rw-r--r--src/prctl.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/prctl.c b/src/prctl.c
index 6c1776522..2396c6bc6 100644
--- a/src/prctl.c
+++ b/src/prctl.c
@@ -20,6 +20,7 @@
#include "xlat/pr_fp_mode.h"
#include "xlat/pr_mce_kill.h"
#include "xlat/pr_mce_kill_policy.h"
+#include "xlat/pr_mdwe_flags.h"
#include "xlat/pr_pac_enabled_keys.h"
#include "xlat/pr_pac_keys.h"
#include "xlat/pr_sched_core_cmds.h"
@@ -360,6 +361,18 @@ SYS_FUNC(prctl)
return RVAL_HEX | RVAL_STR;
+ case PR_GET_MDWE:
+ if (entering(tcp)) {
+ print_prctl_args(tcp, 1);
+ break;
+ }
+ if (syserror(tcp))
+ return 0;
+ tcp->auxstr = sprintflags_ex("", pr_mdwe_flags,
+ (kernel_ulong_t) tcp->u_rval, '\0',
+ XLAT_STYLE_DEFAULT | SPFF_AUXSTR_MODE);
+ return RVAL_HEX | RVAL_STR;
+
/* PR_TASK_PERF_EVENTS_* take no arguments. */
case PR_TASK_PERF_EVENTS_DISABLE:
case PR_TASK_PERF_EVENTS_ENABLE:
@@ -497,10 +510,15 @@ SYS_FUNC(prctl)
printflags(pr_unalign_flags, arg2, "PR_UNALIGN_???");
return RVAL_DECODED;
+ case PR_SET_MDWE:
+ tprint_arg_next();
+ printflags(pr_mdwe_flags, arg2, "PR_MDWE_???");
+ print_prctl_args(tcp, 2);
+ return RVAL_DECODED;
+
case PR_SET_NO_NEW_PRIVS:
case PR_SET_THP_DISABLE:
case PR_SET_IO_FLUSHER:
- case PR_SET_MDWE:
tprint_arg_next();
PRINT_VAL_U(arg2);
print_prctl_args(tcp, 2);
@@ -629,7 +647,6 @@ SYS_FUNC(prctl)
case PR_MPX_DISABLE_MANAGEMENT:
case PR_MPX_ENABLE_MANAGEMENT:
case PR_GET_IO_FLUSHER:
- case PR_GET_MDWE:
default:
print_prctl_args(tcp, 1);
return RVAL_DECODED;