linux/arch/riscv/include/asm
Linus Torvalds cee73b1e84 RISC-V updates for v7.0
- Add support for control flow integrity for userspace processes.
   This is based on the standard RISC-V ISA extensions Zicfiss and
   Zicfilp
 
 - Improve ptrace behavior regarding vector registers, and add some selftests
 
 - Optimize our strlen() assembly
 
 - Enable the ISO-8859-1 code page as built-in, similar to ARM64, for EFI
   volume mounting
 
 - Clean up some code slightly, including defining copy_user_page() as
   copy_page() rather than memcpy(), aligning us with other
   architectures; and using max3() to slightly simplify an expression
   in riscv_iommu_init_check()
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEElRDoIDdEz9/svf2Kx4+xDQu9KksFAmmOYpYACgkQx4+xDQu9
 KkvzOQ/9Fq8ZxWgYofhTPtw9/vps3avheOHlEoRrBWYfn1VkTRPAcbUULL4PGXwg
 dnVFEl3AcrpOFikIthbukklLeLoOnUshZJBU25zY5h0My1jb63V1//gEwJR6I0dg
 +V+GJmfzc4+YVaHK6UFdn7j3GgKUbTC7xXRMuGEriAzKPnm3AXAjh94wMNx6depv
 Li3IXRoZT/HvqIAyfeAoM9STwOzJtE3Sc6fXABkzsIbNTjjdgIqoRSsQsKY10178
 z6ox/sVStnLmVaMbOd/ZVN0J70JRDsvK0TC0/13K1ESUbnVia9a3bPIxLRmSapKC
 wXnwAuSeevtFshGGyd5LZO0QQGxzG1H63Gky2GRoh8bTQbd2tQcfQzANdnPkBAQS
 j2aOiSsiUQeNZqfZAfEBwRd27GXRYlKb/MpgCZKUH+ZO9VG6QaD3VGvg17/Caghy
 nVdbBQ81ZV9tkz9EMN0vt2VJHmEqARh88w619laHjg+ioPTG4/UIDPzskt1I+Fgm
 Y6NQLeFyfaO3RKKDYWGPcY7fmWQI9V8MECHOvyVI4xJcgqAbqnfsgytjuiFbrfRo
 fTvpuB7kvltBZ180QSB79xj0sWGFTWR02MeWy3uOaLZz2eIm2ZTZbMUSgNYR0ldG
 L3y7CEkTkoVF1ijYgAfuMgptk3Yf0dpa66D9HUo947wWkNrW5ds=
 =4fTk
 -----END PGP SIGNATURE-----

Merge tag 'riscv-for-linus-7.0-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull RISC-V updates from Paul Walmsley:

 - Add support for control flow integrity for userspace processes.

   This is based on the standard RISC-V ISA extensions Zicfiss and
   Zicfilp

 - Improve ptrace behavior regarding vector registers, and add some
   selftests

 - Optimize our strlen() assembly

 - Enable the ISO-8859-1 code page as built-in, similar to ARM64, for
   EFI volume mounting

 - Clean up some code slightly, including defining copy_user_page() as
   copy_page() rather than memcpy(), aligning us with other
   architectures; and using max3() to slightly simplify an expression
   in riscv_iommu_init_check()

* tag 'riscv-for-linus-7.0-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (42 commits)
  riscv: lib: optimize strlen loop efficiency
  selftests: riscv: vstate_exec_nolibc: Use the regular prctl() function
  selftests: riscv: verify ptrace accepts valid vector csr values
  selftests: riscv: verify ptrace rejects invalid vector csr inputs
  selftests: riscv: verify syscalls discard vector context
  selftests: riscv: verify initial vector state with ptrace
  selftests: riscv: test ptrace vector interface
  riscv: ptrace: validate input vector csr registers
  riscv: csr: define vtype register elements
  riscv: vector: init vector context with proper vlenb
  riscv: ptrace: return ENODATA for inactive vector extension
  kselftest/riscv: add kselftest for user mode CFI
  riscv: add documentation for shadow stack
  riscv: add documentation for landing pad / indirect branch tracking
  riscv: create a Kconfig fragment for shadow stack and landing pad support
  arch/riscv: add dual vdso creation logic and select vdso based on hw
  arch/riscv: compile vdso with landing pad and shadow stack note
  riscv: enable kernel access to shadow stack memory via the FWFT SBI call
  riscv: add kernel command line option to opt out of user CFI
  riscv/hwprobe: add zicfilp / zicfiss enumeration in hwprobe
  ...
2026-02-12 19:17:44 -08:00
..
vdso riscv: hwprobe: Fix stale vDSO data for late-initialized keys at boot 2025-10-17 22:23:11 -06:00
vendor_extensions riscv: asm: use .insn for making custom instructions 2025-10-27 18:58:37 -06:00
acenv.h RISC-V: Add support to build the ACPI core 2023-06-01 08:45:01 -07:00
acpi.h ACPI: RISCV: Make acpi_numa_get_nid() to be static 2024-09-17 12:02:48 -07:00
alternative-macros.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
alternative.h riscv: errata: Fix the PAUSE Opcode for MIPS P8700 2025-09-19 10:33:56 -06:00
arch_hweight.h riscv: hweight: Use riscv_has_extension_likely 2025-11-19 09:19:27 -07:00
archrandom.h RISC-V: Implement archrandom when Zkr is available 2024-01-17 18:20:49 -08:00
asm-extable.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
asm-offsets.h
asm-prototypes.h riscv/traps: Introduce software check exception and uprobe handling 2026-01-29 02:38:40 -07:00
asm.h riscv: asm: use .insn for making custom instructions 2025-10-27 18:58:37 -06:00
assembler.h arch/riscv: compile vdso with landing pad and shadow stack note 2026-01-29 02:38:40 -07:00
atomic.h riscv/atomic.h: use RISCV_FULL_BARRIER in _arch_atomic* function. 2025-12-19 00:22:30 -07:00
barrier.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
bitops.h riscv: remove irqflags.h inclusion in asm/bitops.h 2026-01-07 13:16:38 -07:00
bug.h Merge commit 'linus' into core/bugs, to resolve conflicts 2025-08-05 11:15:34 +02:00
bugs.h riscv: Add ghostwrite vulnerability 2025-01-18 12:33:39 -08:00
cache.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
cacheflush.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
cacheinfo.h
cfi.h kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI 2025-09-24 14:29:14 -07:00
checksum.h riscv: checksum: Use riscv_has_extension_likely 2025-11-19 09:19:27 -07:00
clint.h
clocksource.h
cmpxchg.h riscv: cmpxchg: Use riscv_has_extension_likely 2025-11-19 09:19:28 -07:00
compat.h riscv: compat: fix COMPAT_UTS_MACHINE definition 2026-01-29 00:59:17 -07:00
cpu.h RISC-V: Add support to build the ACPI core 2023-06-01 08:45:01 -07:00
cpu_ops.h riscv: Use the same CPU operations for all CPUs 2024-01-04 15:03:07 -08:00
cpu_ops_sbi.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
cpufeature-macros.h riscv: Move cpufeature.h macros into their own header 2024-11-11 07:33:08 -08:00
cpufeature.h riscv: zicfiss / zicfilp enumeration 2026-01-25 21:09:53 -07:00
cpuidle.h RISC-V: Enable CPU_IDLE drivers 2022-03-10 09:29:21 -08:00
crash_reserve.h kexec: split crashkernel reservation code out from crash_core.c 2024-02-23 17:48:21 -08:00
csr.h riscv: csr: define vtype register elements 2026-02-09 15:27:33 -07:00
current.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
delay.h
dma-noncoherent.h riscv: mm: dma-noncoherent: nonstandard cache operations support 2023-09-01 09:08:57 -07:00
dmi.h riscv: dmi: Add SMBIOS/DMI support 2024-06-26 08:02:33 -07:00
efi.h Merge patch series "riscv: Introduce KASLR" 2023-09-08 11:25:13 -07:00
elf.h riscv: Introduce set_compat_task() in asm/compat.h 2024-03-19 16:39:40 -07:00
entry-common.h riscv/traps: Introduce software check exception and uprobe handling 2026-01-29 02:38:40 -07:00
errata_list.h riscv: errata: Fix the PAUSE Opcode for MIPS P8700 2025-09-19 10:33:56 -06:00
errata_list_vendors.h riscv: errata: Fix the PAUSE Opcode for MIPS P8700 2025-09-19 10:33:56 -06:00
exec.h riscv: Randomize lower bits of stack address 2024-09-17 08:05:10 -07:00
extable.h riscv: mm: stub extable related functions/macros for !MMU 2023-06-14 07:17:45 -07:00
fence.h riscv: Add license to fence.h 2024-09-03 07:18:33 -07:00
fixmap.h riscv: Move early dtb mapping into the fixmap region 2023-04-13 18:14:26 -07:00
fpu.h riscv: add support for kernel-mode FPU 2024-05-19 14:36:19 -07:00
ftrace.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
futex.h riscv/futex: sign extend compare value in atomic cmpxchg 2025-02-14 13:06:31 -08:00
gdb_xml.h
gpr-num.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
hugetlb.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
hwcap.h riscv: zicfiss / zicfilp enumeration 2026-01-25 21:09:53 -07:00
hwprobe.h riscv: hwprobe: add support for RISCV_HWPROBE_KEY_IMA_EXT_1 2026-01-29 02:38:40 -07:00
image.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
insn-def.h riscv: Introduce Zalasr instructions 2025-11-19 09:19:28 -07:00
insn.h riscv: kprobes: Move branch_funct3 to insn.h 2025-09-16 18:46:43 -06:00
io.h riscv: introduce ioremap_wc() 2025-09-16 16:24:27 -06:00
irq.h ACPI: RISC-V: Add RPMI System MSI to GSI mapping 2025-09-25 19:49:09 -06:00
irq_stack.h riscv: Deduplicate IRQ stack switching 2023-10-27 14:43:06 -07:00
irq_work.h arch: consolidate arch_irq_work_raise prototypes 2023-11-23 11:32:29 +01:00
irqflags.h riscv: Remove unnecessary irqflags processor.h include 2024-04-16 18:50:52 -07:00
jump_label.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
kasan.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
Kbuild fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
kdebug.h
kexec.h riscv: kexec_file: Support loading Image binary file 2025-06-05 11:09:34 -07:00
kfence.h riscv: Fix IPIs usage in kfence_protect_page() 2024-12-11 11:44:03 -08:00
kgdb.h riscv: kgdb: Ensure that BUFMAX > NUMREGBYTES 2025-10-09 19:36:45 -06:00
kprobes.h riscv: Only consider swbp/ss handlers for correct privileged mode 2023-09-20 06:45:27 -07:00
kvm_aia.h RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init() 2025-07-28 22:27:07 +05:30
kvm_gstage.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_host.h RISC-V: KVM: Flush VS-stage TLB after VCPU migration for Andes cores 2025-11-24 09:55:36 +05:30
kvm_mmu.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_nacl.h RISC-V: KVM: Use SBI sync SRET call when available 2024-10-28 16:44:03 +05:30
kvm_tlb.h RISC-V: KVM: Flush VS-stage TLB after VCPU migration for Andes cores 2025-11-24 09:55:36 +05:30
kvm_types.h KVM: RISC-V: Use common KVM implementation of MMU memory caches 2022-01-06 14:38:50 +05:30
kvm_vcpu_fp.h RISC-V: KVM: Improve ISA extension by using a bitmap 2022-07-29 17:14:11 +05:30
kvm_vcpu_insn.h RISC-V: KVM: Add extensible CSR emulation framework 2022-07-29 17:14:53 +05:30
kvm_vcpu_pmu.h RISC-V: KVM: Implement get event info function 2025-09-16 11:49:31 +05:30
kvm_vcpu_sbi.h RISC-V: KVM: Add SBI MPXY extension support for Guest 2025-11-24 09:55:36 +05:30
kvm_vcpu_sbi_fwft.h RISC-V: KVM: Implement ONE_REG interface for SBI FWFT state 2025-09-16 10:54:21 +05:30
kvm_vcpu_timer.h RISC-V: KVM: Fix kvm_riscv_vcpu_timer_pending() for Sstc 2022-10-21 11:52:45 +05:30
kvm_vcpu_vector.h KVM: RISC-V: refactor vector state reset 2025-05-21 09:34:46 +05:30
kvm_vmid.h RISC-V: KVM: Flush VS-stage TLB after VCPU migration for Andes cores 2025-11-24 09:55:36 +05:30
linkage.h
membarrier.h membarrier: riscv: Provide core serializing command 2024-02-15 08:04:14 -08:00
mman.h riscv/mm: ensure PROT_WRITE leads to VM_READ | VM_WRITE 2026-01-25 21:09:53 -07:00
mmio.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmiowb.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmu.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
mmu_context.h riscv/shstk: If needed allocate a new shadow stack on clone 2026-01-29 02:34:21 -07:00
module.h riscv: module: move find_section to module.h 2023-01-31 23:29:39 -08:00
module.lds.h riscv module: remove (NOLOAD) 2022-03-29 14:31:07 -07:00
numa.h
page.h RISC-V updates for v7.0 2026-02-12 19:17:44 -08:00
paravirt.h riscv/paravirt: Use common code for paravirt_steal_clock() 2026-01-12 16:47:33 +01:00
pci.h RISC-V Patches for the 5.20 Merge Window, Part 1 2022-08-06 15:04:48 -07:00
perf_event.h The biggest change here is eliminating the awful idea that KVM had, of 2024-11-23 16:00:50 -08:00
pgalloc.h riscv: pgtable: unconditionally use tlb_remove_ptdesc() 2025-04-01 15:17:14 -07:00
pgtable-32.h RISC-V: Provide pgtable_l5_enabled on rv32 2023-10-31 19:15:50 -07:00
pgtable-64.h riscv: mm: Define MAX_POSSIBLE_PHYSMEM_BITS for zsmalloc 2025-10-17 22:00:29 -06:00
pgtable-bits.h riscv: mm: add userfaultfd write-protect support 2025-11-24 15:08:55 -08:00
pgtable.h RISC-V updates for v7.0 2026-02-12 19:17:44 -08:00
probes.h riscv: Add kprobes supported 2021-01-14 15:09:06 -08:00
processor.h riscv: Add usercfi state for task and save/restore of CSR_SSP on trap entry/exit 2026-01-25 21:09:53 -07:00
ptrace.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
runtime-const.h riscv: fix runtime constant support for nommu kernels 2025-06-10 18:19:33 -07:00
sbi.h riscv: Add SBI debug trigger extension and function ids 2025-12-19 00:22:30 -07:00
scs.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
seccomp.h
sections.h riscv: Check if the code to patch lies in the exit section 2024-01-09 10:58:59 -08:00
semihost.h riscv: Implement semihost.h for earlycon semihost driver 2023-01-19 14:58:19 +01:00
set_memory.h riscv: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-uapi headers 2025-09-16 16:25:30 -06:00
signal32.h riscv: compat: signal: Add rt_frame implementation 2022-05-17 16:37:21 -07:00
simd.h riscv: vector: Fix a typo of preempt_v 2024-03-15 10:17:38 -07:00
smp.h riscv: Use IPIs for remote cache/TLB flushes by default 2024-04-29 10:49:26 -07:00
soc.h
sparsemem.h RISC-V: Don't have MAX_PHYSMEM_BITS exceed phys_addr_t 2024-09-20 01:32:39 -07:00
spinlock.h riscv: qspinlock: Fixup _Q_PENDING_LOOPS definition 2025-01-08 10:46:01 -08:00
stackprotector.h stackprotector: actually use get_random_canary() 2022-11-18 02:18:10 +01:00
stacktrace.h riscv: declare overflow_stack as exported from traps.c 2024-02-07 09:55:27 -08:00
string.h riscv: Omit optimized string routines when using KASAN 2024-09-19 01:10:00 -07:00
suspend.h riscv: Add stimecmp save and restore 2025-03-18 12:59:03 +00:00
swab.h riscv: introduce asm/swab.h 2025-09-18 08:20:25 -06:00
switch_to.h riscv: vector: Support xtheadvector save/restore 2025-01-18 12:33:33 -08:00
sync_core.h membarrier: riscv: Provide core serializing command 2024-02-15 08:04:14 -08:00
syscall.h riscv: fix minor typo in syscall.h comment 2026-01-25 21:08:59 -07:00
syscall_table.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
syscall_wrapper.h riscv: Mark __se_sys_* functions __used 2024-03-26 14:11:03 -07:00
text-patching.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
thread_info.h riscv: Add usercfi state for task and save/restore of CSR_SSP on trap entry/exit 2026-01-25 21:09:53 -07:00
timex.h init: consolidate prototypes in linux/init.h 2023-06-09 17:44:16 -07:00
tlb.h mm: pgtable: introduce generic __tlb_remove_table() 2025-01-25 20:22:23 -08:00
tlbbatch.h riscv: Add support for BATCHED_UNMAP_TLB_FLUSH 2024-01-11 08:01:53 -08:00
tlbflush.h mm: remove arch_flush_tlb_batched_pending() arch helper 2025-07-24 19:12:32 -07:00
topology.h arch, mm: move definition of node_data to generic code 2024-09-03 21:15:28 -07:00
trace.h riscv: Add tracepoints for SBI calls and returns 2024-07-10 13:23:09 -07:00
uaccess.h riscv: Add intermediate cast to 'unsigned long' in __get_user_asm 2026-01-22 20:21:14 -07:00
unistd.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
uprobes.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
usercfi.h riscv: add kernel command line option to opt out of user CFI 2026-01-29 02:38:40 -07:00
vdso.h arch/riscv: add dual vdso creation logic and select vdso based on hw 2026-01-29 02:38:40 -07:00
vector.h riscv: signal: abstract header saving for setup_sigcontext 2025-12-19 00:18:33 -07:00
vendor_extensions.h riscv: cpufeature: Extract common elements from extension checking 2024-07-22 15:36:57 -07:00
vendorid_list.h riscv: Update MIPS vendor id to 0x127 2025-11-15 15:27:02 -07:00
vermagic.h
vmalloc.h riscv: Add license to vmalloc.h 2024-09-03 07:18:34 -07:00
word-at-a-time.h kernel.h: removed REPEAT_BYTE from kernel.h 2024-02-01 09:47:59 -08:00
xip_fixup.h riscv: drop the use of XIP_OFFSET in XIP_FIXUP_FLASH_OFFSET 2024-09-12 07:22:59 -07:00
xor.h riscv: Add vector extension XOR implementation 2024-01-16 07:13:55 -08:00