Skip to content

Commit c994ac7

Browse files
committed
tools headers: Sync uapi/linux/prctl.h with the kernel sources
To pick up the changes in this cset: 09d6775 riscv: Add support for userspace pointer masking 91e102e prctl: arch-agnostic prctl for shadow stack This addresses these perf build warnings: Warning: Kernel ABI header differences: diff -u tools/perf/trace/beauty/include/uapi/linux/prctl.h include/uapi/linux/prctl.h Please see tools/include/uapi/README for further details. Reviewed-by: James Clark <james.clark@linaro.org> Cc: Mark Brown <broonie@kernel.org> Cc: Palmer Dabbelt <palmer@rivosinc.com> Link: https://lore.kernel.org/r/20241203035349.1901262-11-namhyung@kernel.org Signed-off-by: Namhyung Kim <namhyung@kernel.org>
1 parent 02116fc commit c994ac7

File tree

1 file changed

+26
-1
lines changed
  • tools/perf/trace/beauty/include/uapi/linux

1 file changed

+26
-1
lines changed

tools/perf/trace/beauty/include/uapi/linux/prctl.h

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ struct prctl_mm_map {
230230
# define PR_PAC_APDBKEY (1UL << 3)
231231
# define PR_PAC_APGAKEY (1UL << 4)
232232

233-
/* Tagged user address controls for arm64 */
233+
/* Tagged user address controls for arm64 and RISC-V */
234234
#define PR_SET_TAGGED_ADDR_CTRL 55
235235
#define PR_GET_TAGGED_ADDR_CTRL 56
236236
# define PR_TAGGED_ADDR_ENABLE (1UL << 0)
@@ -244,6 +244,9 @@ struct prctl_mm_map {
244244
# define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
245245
/* Unused; kept only for source compatibility */
246246
# define PR_MTE_TCF_SHIFT 1
247+
/* RISC-V pointer masking tag length */
248+
# define PR_PMLEN_SHIFT 24
249+
# define PR_PMLEN_MASK (0x7fUL << PR_PMLEN_SHIFT)
247250

248251
/* Control reclaim behavior when allocating memory */
249252
#define PR_SET_IO_FLUSHER 57
@@ -328,4 +331,26 @@ struct prctl_mm_map {
328331
# define PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC 0x10 /* Clear the aspect on exec */
329332
# define PR_PPC_DEXCR_CTRL_MASK 0x1f
330333

334+
/*
335+
* Get the current shadow stack configuration for the current thread,
336+
* this will be the value configured via PR_SET_SHADOW_STACK_STATUS.
337+
*/
338+
#define PR_GET_SHADOW_STACK_STATUS 74
339+
340+
/*
341+
* Set the current shadow stack configuration. Enabling the shadow
342+
* stack will cause a shadow stack to be allocated for the thread.
343+
*/
344+
#define PR_SET_SHADOW_STACK_STATUS 75
345+
# define PR_SHADOW_STACK_ENABLE (1UL << 0)
346+
# define PR_SHADOW_STACK_WRITE (1UL << 1)
347+
# define PR_SHADOW_STACK_PUSH (1UL << 2)
348+
349+
/*
350+
* Prevent further changes to the specified shadow stack
351+
* configuration. All bits may be locked via this call, including
352+
* undefined bits.
353+
*/
354+
#define PR_LOCK_SHADOW_STACK_STATUS 76
355+
331356
#endif /* _LINUX_PRCTL_H */

0 commit comments

Comments
 (0)