From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Wed, 25 Sep 2019 10:48:48 +0200 Subject: [PATCH] [SIMD]: FPU register save/restore is also required on 5.0 kernels NOTE: the kernel needs to have the copy_kernel_to_xregs_err, copy_kernel_to_fxregs_err and copy_kernel_to_fregs_err funcitons backported for this to work. Signed-off-by: Thomas Lamprecht --- include/linux/simd_x86.h | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/include/linux/simd_x86.h b/include/linux/simd_x86.h index 5f243e0cc..aac63d964 100644 --- a/include/linux/simd_x86.h +++ b/include/linux/simd_x86.h @@ -179,7 +179,6 @@ kfpu_begin(void) preempt_disable(); local_irq_disable(); -#if defined(HAVE_KERNEL_TIF_NEED_FPU_LOAD) /* * The current FPU registers need to be preserved by kfpu_begin() * and restored by kfpu_end(). This is required because we can @@ -188,20 +187,13 @@ kfpu_begin(void) * context switch. */ copy_fpregs_to_fpstate(¤t->thread.fpu); -#elif defined(HAVE_KERNEL_FPU_INITIALIZED) - /* - * There is no need to preserve and restore the FPU registers. - * They will always be restored from the task's stored FPU state - * when switching contexts. - */ + WARN_ON_ONCE(current->thread.fpu.initialized == 0); -#endif } static inline void kfpu_end(void) { -#if defined(HAVE_KERNEL_TIF_NEED_FPU_LOAD) union fpregs_state *state = ¤t->thread.fpu.state; int error; @@ -213,7 +205,6 @@ kfpu_end(void) error = copy_kernel_to_fregs_err(&state->fsave); } WARN_ON_ONCE(error); -#endif local_irq_enable(); preempt_enable();