[PATCH v3 0/5] riscv: vdso: Implement __vdso_futex_robust_try_unlock()

From: Nam Cao

Date: Fri Jul 17 2026 - 04:11:40 EST


This series adds new vdso futex entries, allowing user to address the
robust futex race condition regarding clearing the
robust_list_head::list_op_pending pointer.

Thomas wrote a summary of the problem:
https://lore.kernel.org/lkml/20260602084648.462672743@xxxxxxxxxx/

The core infrastructure has been implemented along with x86 support. This
series adds RISC-V support.

The first 4 patches prepare compat vdso Makefile. The final patch is the
main show.

v3:
- add missing include guard
- switch to if/else for compare-and-exchange vs load-reserved/store-conditional

v2:
- address Sashiko's comments

Nam Cao (5):
riscv: compat_vdso: switch to standard kbuild rule
riscv: compat_vdso: Allow *.c source files
riscv: compat_vdso: Introduce COMPAT_MARCH variable
riscv: compat_vdso: Build with zacas if available
riscv: vdso: Implement __vdso_futex_robust_try_unlock()

arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/cpufeature-macros.h | 2 +
arch/riscv/include/asm/futex_robust.h | 16 +++++
arch/riscv/include/asm/vdso/futex.h | 14 ++++
arch/riscv/kernel/compat_vdso/Makefile | 27 ++++---
arch/riscv/kernel/compat_vdso/futex.c | 3 +
arch/riscv/kernel/vdso.c | 61 ++++++++++++++++
arch/riscv/kernel/vdso/Makefile | 14 +++-
arch/riscv/kernel/vdso/futex.c | 84 ++++++++++++++++++++++
arch/riscv/kernel/vdso/vdso.lds.S | 8 +++
10 files changed, 219 insertions(+), 11 deletions(-)
create mode 100644 arch/riscv/include/asm/futex_robust.h
create mode 100644 arch/riscv/include/asm/vdso/futex.h
create mode 100644 arch/riscv/kernel/compat_vdso/futex.c
create mode 100644 arch/riscv/kernel/vdso/futex.c

--
2.47.3