[GIT PULL] RISC-V Patches for the 6.17 Merge Window, Part 2

Alexandre Ghiti alex at ghiti.fr
Mon Aug 4 04:57:16 PDT 2025


The following changes since commit 5ec6b493183c4706216347853d3446c36ed399d1:

   riscv: introduce ioremap_wc() (2025-08-01 11:52:10 +0000)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/alexghiti/linux.git/ 
tags/riscv-mw2-6.17

for you to fetch changes up to e040fd62fd8387ea58635b64351c3dd5adbc3807:

   Merge patch series "riscv control-flow integrity for usermode" 
(2025-08-01 12:37:13 +0000)

----------------------------------------------------------------
riscv patches for 6.17-rc1, part 2

- CFI

----------------------------------------------------------------

The CFI patchset passed the CI and no regression was found (ltp/mmap04 
failed but it happened before, I'm looking into it but I'm not worried), 
the CI tested a non-CFI kernel and I manually tested a CFI kernel.

----------------------------------------------------------------

Alexandre Ghiti (1):
       Merge patch series "riscv control-flow integrity for usermode"

Andy Chiu (1):
       riscv: signal: abstract header saving for setup_sigcontext

Deepak Gupta (25):
       mm: VM_SHADOW_STACK definition for riscv
       dt-bindings: riscv: zicfilp and zicfiss in dt-bindings 
(extensions.yaml)
       riscv: zicfiss / zicfilp enumeration
       riscv: zicfiss / zicfilp extension csr and bit definitions
       riscv: usercfi state for task and save/restore of CSR_SSP on trap 
entry/exit
       riscv/mm : ensure PROT_WRITE leads to VM_READ | VM_WRITE
       riscv/mm: manufacture shadow stack pte
       riscv/mm: teach pte_mkwrite to manufacture shadow stack PTEs
       riscv/mm: write protect and shadow stack
       riscv/mm: Implement map_shadow_stack() syscall
       riscv/shstk: If needed allocate a new shadow stack on clone
       riscv: Implements arch agnostic shadow stack prctls
       prctl: arch-agnostic prctl for indirect branch tracking
       riscv: Implements arch agnostic indirect branch tracking prctls
       riscv/traps: Introduce software check exception and uprobe handling
       riscv/signal: save and restore of shadow stack for signal
       riscv/kernel: update __show_regs to print shadow stack register
       riscv/ptrace: riscv cfi status and state via ptrace and in core files
       riscv/hwprobe: zicfilp / zicfiss enumeration in hwprobe
       riscv: kernel command line option to opt out of user cfi
       riscv: enable kernel access to shadow stack memory via FWFT sbi call
       riscv: create a config for shadow stack and landing pad instr support
       riscv: Documentation for landing pad / indirect branch tracking
       riscv: Documentation for shadow stack on riscv
       kselftest/riscv: kselftest for user mode cfi

Jim Shu (1):
       arch/riscv: compile vdso with landing pad and shadow stack note

  Documentation/admin-guide/kernel-parameters.txt         |   8 +
  Documentation/arch/riscv/index.rst                      |   2 +
  Documentation/arch/riscv/zicfilp.rst                    | 115 +++++
  Documentation/arch/riscv/zicfiss.rst                    | 179 ++++++++
  Documentation/devicetree/bindings/riscv/extensions.yaml |  14 +
  arch/riscv/Kconfig                                      |  21 +
  arch/riscv/Makefile                                     |   5 +-
  arch/riscv/configs/hardening.config                     |   4 +
  arch/riscv/include/asm/asm-prototypes.h                 |   1 +
  arch/riscv/include/asm/assembler.h                      |  44 ++
  arch/riscv/include/asm/cpufeature.h                     |  12 +
  arch/riscv/include/asm/csr.h                            |  16 +
  arch/riscv/include/asm/entry-common.h                   |   2 +
  arch/riscv/include/asm/hwcap.h                          |   2 +
  arch/riscv/include/asm/mman.h                           |  26 ++
  arch/riscv/include/asm/mmu_context.h                    |   7 +
  arch/riscv/include/asm/pgtable.h                        |  30 +-
  arch/riscv/include/asm/processor.h                      |   1 +
  arch/riscv/include/asm/thread_info.h                    |   3 +
  arch/riscv/include/asm/usercfi.h                        |  95 +++++
  arch/riscv/include/asm/vector.h                         |   3 +
  arch/riscv/include/uapi/asm/hwprobe.h                   |   2 +
  arch/riscv/include/uapi/asm/ptrace.h                    |  34 ++
  arch/riscv/include/uapi/asm/sigcontext.h                |   1 +
  arch/riscv/kernel/Makefile                              |   1 +
  arch/riscv/kernel/asm-offsets.c                         |  10 +
  arch/riscv/kernel/cpufeature.c                          |  27 ++
  arch/riscv/kernel/entry.S                               |  38 ++
  arch/riscv/kernel/head.S                                |  27 ++
  arch/riscv/kernel/process.c                             |  27 +-
  arch/riscv/kernel/ptrace.c                              |  95 +++++
  arch/riscv/kernel/signal.c                              | 148 ++++++-
  arch/riscv/kernel/sys_hwprobe.c                         |   2 +
  arch/riscv/kernel/sys_riscv.c                           |  10 +
  arch/riscv/kernel/traps.c                               |  54 +++
  arch/riscv/kernel/usercfi.c                             | 545 
++++++++++++++++++++++++
  arch/riscv/kernel/vdso/Makefile                         |  11 +-
  arch/riscv/kernel/vdso/flush_icache.S                   |   4 +
  arch/riscv/kernel/vdso/getcpu.S                         |   4 +
  arch/riscv/kernel/vdso/rt_sigreturn.S                   |   4 +
  arch/riscv/kernel/vdso/sys_hwprobe.S                    |   4 +
  arch/riscv/kernel/vdso/vgetrandom-chacha.S              |   5 +-
  arch/riscv/mm/init.c                                    |   2 +-
  arch/riscv/mm/pgtable.c                                 |  16 +
  include/linux/cpu.h                                     |   4 +
  include/linux/mm.h                                      |   7 +
  include/uapi/linux/elf.h                                |   2 +
  include/uapi/linux/prctl.h                              |  27 ++
  kernel/sys.c                                            |  30 ++
  tools/testing/selftests/riscv/Makefile                  |   2 +-
  tools/testing/selftests/riscv/cfi/.gitignore            |   3 +
  tools/testing/selftests/riscv/cfi/Makefile              |  16 +
  tools/testing/selftests/riscv/cfi/cfi_rv_test.h         |  82 ++++
  tools/testing/selftests/riscv/cfi/riscv_cfi_test.c      | 173 ++++++++
  tools/testing/selftests/riscv/cfi/shadowstack.c         | 385 
+++++++++++++++++
  tools/testing/selftests/riscv/cfi/shadowstack.h         |  27 ++
  56 files changed, 2389 insertions(+), 30 deletions(-)
  create mode 100644 Documentation/arch/riscv/zicfilp.rst
  create mode 100644 Documentation/arch/riscv/zicfiss.rst
  create mode 100644 arch/riscv/configs/hardening.config
  create mode 100644 arch/riscv/include/asm/mman.h
  create mode 100644 arch/riscv/include/asm/usercfi.h
  create mode 100644 arch/riscv/kernel/usercfi.c
  create mode 100644 tools/testing/selftests/riscv/cfi/.gitignore
  create mode 100644 tools/testing/selftests/riscv/cfi/Makefile
  create mode 100644 tools/testing/selftests/riscv/cfi/cfi_rv_test.h
  create mode 100644 tools/testing/selftests/riscv/cfi/riscv_cfi_test.c
  create mode 100644 tools/testing/selftests/riscv/cfi/shadowstack.c
  create mode 100644 tools/testing/selftests/riscv/cfi/shadowstack.h




More information about the linux-riscv mailing list