Pull RISC-v updates from Palmer Dabbelt: - Support for pointer masking in userspace - Support for probing vector misaligned access performance - Support for qspinlock on systems with Zacas and Zabha * tag 'riscv-for-linus-6.13-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (38 commits) RISC-V: Remove unnecessary include from compat.h riscv: Fix default misaligned access trap riscv: Add qspinlock support dt-bindings: riscv: Add Ziccrse ISA extension description riscv: Add ISA extension parsing for Ziccrse asm-generic: ticket-lock: Add separate ticket-lock.h asm-generic: ticket-lock: Reuse arch_spinlock_t of qspinlock riscv: Implement xchg8/16() using Zabha riscv: Implement arch_cmpxchg128() using Zacas riscv: Improve zacas fully-ordered cmpxchg() riscv: Implement cmpxchg8/16() using Zabha dt-bindings: riscv: Add Zabha ISA extension description riscv: Implement cmpxchg32/64() using Zacas riscv: Do not fail to build on byte/halfword operations with Zawrs riscv: Move cpufeature.h macros into their own header KVM: riscv: selftests: Add Smnpm and Ssnpm to get-reg-list test RISC-V: KVM: Allow Smnpm and Ssnpm extensions for guests riscv: hwprobe: Export the Supm ISA extension riscv: selftests: Add a pointer masking test riscv: Allow ptrace control of the tagged address ABI ...
Showing the changes to include/uapi (2 of 53 files). Show all
Unified · Split
| @@ -451,6 +451,7 @@ typedef struct elf64_shdr { · 450 unmodified lines | ||
| 451 | 451 | #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */ |
| 452 | 452 | #define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */ |
| 453 | 453 | #define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */ |
| 454 | +#define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */ | |
| 454 | 455 | #define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */ |
| 455 | 456 | #define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */ |
| 456 | 457 | #define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */ |
| @@ -230,7 +230,7 @@ struct prctl_mm_map { · 229 unmodified lines | ||
| 230 | 230 | # define PR_PAC_APDBKEY (1UL << 3) |
| 231 | 231 | # define PR_PAC_APGAKEY (1UL << 4) |
| 232 | 232 | |
| 233 | −/* Tagged user address controls for arm64 */ | |
| 233 | +/* Tagged user address controls for arm64 and RISC-V */ | |
| 234 | 234 | #define PR_SET_TAGGED_ADDR_CTRL 55 |
| 235 | 235 | #define PR_GET_TAGGED_ADDR_CTRL 56 |
| 236 | 236 | # define PR_TAGGED_ADDR_ENABLE (1UL << 0) |
| @@ -244,6 +244,9 @@ struct prctl_mm_map { · 7 unmodified lines | ||
| 244 | 244 | # define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) |
| 245 | 245 | /* Unused; kept only for source compatibility */ |
| 246 | 246 | # 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) | |
| 247 | 250 | |
| 248 | 251 | /* Control reclaim behavior when allocating memory */ |
| 249 | 252 | #define PR_SET_IO_FLUSHER 57 |