Movatterモバイル変換


[0]ホーム

URL:


This is the mail archive of thelibc-alpha@sourceware.orgmailing list for theglibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]
Other format:[Raw text]

[PATCH 16/27] arm64/sve: Preserve SVE registers around kernel-mode NEON use


Kernel-mode NEON will corrupt the SVE vector registers, due to theway they alias the FPSIMD vector registers in the hardware.This patch ensures that any live SVE register content for the taskis saved by kernel_neon_begin().  The data will be restored in theusual way on return to userspace.Signed-off-by: Dave Martin <Dave.Martin@arm.com>--- arch/arm64/kernel/fpsimd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.cindex 955c873..b7fb836 100644--- a/arch/arm64/kernel/fpsimd.c+++ b/arch/arm64/kernel/fpsimd.c@@ -758,8 +758,10 @@ void kernel_neon_begin(void) __this_cpu_write(kernel_neon_busy, true);  /* Save unsaved task fpsimd state, if any: */-if (current->mm && !test_and_set_thread_flag(TIF_FOREIGN_FPSTATE))-fpsimd_save_state(&current->thread.fpsimd_state);+if (current->mm) {+task_fpsimd_save();+set_thread_flag(TIF_FOREIGN_FPSTATE);+}  /* Invalidate any task state remaining in the fpsimd regs: */ __this_cpu_write(fpsimd_last_state, NULL);-- 2.1.4

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav:[Date Prev] [Date Next][Thread Prev] [Thread Next]

[8]ページ先頭

©2009-2026 Movatter.jp