summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2024-11-07 11:20:33 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-11-12 11:19:44 +0000
commitce6a0b875b79f44cc00bdc9cbe7015d1fbaf2582 (patch)
treefc04d70772ddd4c58817d65832d827b0ecb7f5ca
parent6eb0a35580ab935432c3f9eaf8afca91496f4f53 (diff)
downloadpoky-ce6a0b875b79f44cc00bdc9cbe7015d1fbaf2582.tar.gz
kernel-devsrc: update for 6.12+
arm64 needs some new files to regenerate the build environment in 6.12+. This is due to upstream commits: commit e632bca07c8eef1de9dc50f4e4066c56e9d68b07 Author: Arnd Bergmann <arnd@arndb.de> Date: Thu Jul 4 14:33:34 2024 +0200 arm64: generate 64-bit syscall.tbl Change the asm/unistd.h header for arm64 to no longer include asm-generic/unistd.h itself, but instead generate both the asm/unistd.h contents and the list of entry points using the syscall.tbl scripts that we use on most other architectures. Once his is done for the remaining architectures, the generic unistd.h header can be removed and the generated tbl file put in its place. The Makefile changes are more complex than they should be, I need a little help to improve those. Ideally this should be done in an architecture-independent way as well. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> and: commit 712676ea2bb3882a852bcf49862c4247317fc9b2 Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Tue Sep 3 12:09:17 2024 +0000 arm64: vDSO: Wire up getrandom() vDSO implementation Hook up the generic vDSO implementation to the aarch64 vDSO data page. The _vdso_rng_data required data is placed within the _vdso_data vvar page, by using a offset larger than the vdso_data. The vDSO function requires a ChaCha20 implementation that does not write to the stack, and that can do an entire ChaCha20 permutation. The one provided uses NEON on the permute operation, with a fallback to the syscall for chips that do not support AdvSIMD. This also passes the vdso_test_chacha test along with vdso_test_getrandom. The vdso_test_getrandom bench-single result on Neoverse-N1 shows: vdso: 25000000 times in 0.783884250 seconds libc: 25000000 times in 8.780275399 seconds syscall: 25000000 times in 8.786581518 seconds A small fixup to arch/arm64/include/asm/mman.h was required to avoid pulling kernel code into the vDSO, similar to what's already done in arch/arm64/include/asm/rwonce.h. Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Will Deacon <will@kernel.org> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> (From OE-Core rev: b3c24a31c29aa74a9d63a0ea0bcaccca73db870b) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/linux/kernel-devsrc.bb8
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb
index 1500aff2e2..ed7a1a973c 100644
--- a/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -184,6 +184,10 @@ do_install() {
184 cp -a --parents arch/arm64/kernel/vdso/note.S $kerneldir/build/ 184 cp -a --parents arch/arm64/kernel/vdso/note.S $kerneldir/build/
185 cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/ 185 cp -a --parents arch/arm64/kernel/vdso/gen_vdso_offsets.sh $kerneldir/build/
186 186
187 # 6.12+
188 cp -a --parents arch/arm64/kernel/vdso/vgetrandom.c $kerneldir/build/ 2>/dev/null || :
189 cp -a --parents arch/arm64/kernel/vdso/vgetrandom-chacha.S $kerneldir/build/ 2>/dev/null || :
190
187 cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/ 2>/dev/null || : 191 cp -a --parents arch/arm64/kernel/module.lds $kerneldir/build/ 2>/dev/null || :
188 192
189 # 5.13+ needs these tools 193 # 5.13+ needs these tools
@@ -194,6 +198,10 @@ do_install() {
194 cp -a --parents arch/arm64/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || : 198 cp -a --parents arch/arm64/tools/gen-sysreg.awk $kerneldir/build/ 2>/dev/null || :
195 cp -a --parents arch/arm64/tools/sysreg $kerneldir/build/ 2>/dev/null || : 199 cp -a --parents arch/arm64/tools/sysreg $kerneldir/build/ 2>/dev/null || :
196 200
201 # 6.12+
202 cp -a --parents arch/arm64/tools/syscall_64.tbl $kerneldir/build/ 2>/dev/null || :
203 cp -a --parents arch/arm64/tools/syscall_32.tbl $kerneldir/build/ 2>/dev/null || :
204
197 if [ -e $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk ]; then 205 if [ -e $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk ]; then
198 sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk 206 sed -i -e "s,#!.*awk.*,#!${USRBINPATH}/env awk," $kerneldir/build/arch/arm64/tools/gen-cpucaps.awk
199 fi 207 fi