[SIMD]: FPU register save/restore is also required on 5.0 kernels~
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
parent
9cad433df9
commit
457c4458a2
57
debian/patches/0010-SIMD-FPU-register-save-restore-is-also-required-on-5.patch
vendored
Normal file
57
debian/patches/0010-SIMD-FPU-register-save-restore-is-also-required-on-5.patch
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
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 <t.lamprecht@proxmox.com>
|
||||
---
|
||||
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();
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -7,3 +7,4 @@
|
||||
0007-Fix-race-in-parallel-mount-s-thread-dispatching-algo.patch
|
||||
0008-Linux-5.0-compat-SIMD-compatibility.patch
|
||||
0009-Fix-CONFIG_X86_DEBUG_FPU-build-failure.patch
|
||||
0010-SIMD-FPU-register-save-restore-is-also-required-on-5.patch
|
||||
|
Loading…
Reference in New Issue
Block a user