+Ard as he had helpful comments on the previous version. On Tue, Sep 03, 2024 at 12:09:15PM +0000, Adhemerval Zanella wrote: > Implement stack-less ChaCha20 and wire it with the generic vDSO > getrandom code. The first patch is Mark's fix to the alternatives > system in the vDSO, while the the second is the actual vDSO work. > > Changes from v4: > - Improve BE handling. > > Changes from v3: > - Use alternative_has_cap_likely instead of ALTERNATIVE. > - Header/include and comment fixups. > > Changes from v2: > - Refactor Makefile to use same flags for vgettimeofday and > vgetrandom. > - Removed rodata usage and fixed BE on vgetrandom-chacha.S. > > Changes from v1: > - Fixed style issues and typos. > - Added fallback for systems without NEON support. > - Avoid use of non-volatile vector registers in neon chacha20. > - Use c-getrandom-y for vgetrandom.c. > - Fixed TIMENS vdso_rnd_data access. > > Adhemerval Zanella (1): > arm64: vdso: wire up getrandom() vDSO implementation > > Mark Rutland (1): > arm64: alternative: make alternative_has_cap_likely() VDSO compatible > > arch/arm64/Kconfig | 1 + > arch/arm64/include/asm/alternative-macros.h | 4 + > arch/arm64/include/asm/mman.h | 6 +- > arch/arm64/include/asm/vdso.h | 6 + > arch/arm64/include/asm/vdso/getrandom.h | 50 ++++++ > arch/arm64/include/asm/vdso/vsyscall.h | 10 ++ > arch/arm64/kernel/vdso.c | 6 - > arch/arm64/kernel/vdso/Makefile | 25 ++- > arch/arm64/kernel/vdso/vdso | 1 + > arch/arm64/kernel/vdso/vdso.lds.S | 4 + > arch/arm64/kernel/vdso/vgetrandom-chacha.S | 172 ++++++++++++++++++++ > arch/arm64/kernel/vdso/vgetrandom.c | 15 ++ > tools/arch/arm64/vdso | 1 + > tools/include/linux/compiler.h | 4 + > tools/testing/selftests/vDSO/Makefile | 3 +- > 15 files changed, 292 insertions(+), 16 deletions(-) > create mode 100644 arch/arm64/include/asm/vdso/getrandom.h > create mode 120000 arch/arm64/kernel/vdso/vdso > create mode 100644 arch/arm64/kernel/vdso/vgetrandom-chacha.S > create mode 100644 arch/arm64/kernel/vdso/vgetrandom.c > create mode 120000 tools/arch/arm64/vdso > > -- > 2.43.0 >