aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/fpu/init.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-05-20 11:59:45 +0200
committerIngo Molnar <mingo@kernel.org>2015-05-20 12:01:01 +0200
commit6f56a8d024757e2f3bda8bf3bdf6aa1a21e6810b (patch)
tree923d044c9cb5e3e89fdf02af35acc050e4f39195 /arch/x86/kernel/fpu/init.c
parentx86/fpu/init: Clean up and comment the __setup() functions (diff)
parentx86/fpu: Disable XSAVES* support for now (diff)
downloadlinux-dev-6f56a8d024757e2f3bda8bf3bdf6aa1a21e6810b.tar.xz
linux-dev-6f56a8d024757e2f3bda8bf3bdf6aa1a21e6810b.zip
Merge branch 'x86/urgent' into x86/fpu, to resolve a conflict
Conflicts: arch/x86/kernel/i387.c This commit is conflicting: e88221c50cad ("x86/fpu: Disable XSAVES* support for now") These functions changed a lot, move the quirk to arch/x86/kernel/fpu/init.c's fpu__init_system_xstate_size_legacy(). Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/fpu/init.c')
-rw-r--r--arch/x86/kernel/fpu/init.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
index 9da740e236d5..fc878fee6a51 100644
--- a/arch/x86/kernel/fpu/init.c
+++ b/arch/x86/kernel/fpu/init.c
@@ -167,6 +167,20 @@ static void __init fpu__init_system_xstate_size_legacy(void)
else
xstate_size = sizeof(struct fregs_state);
}
+ /*
+ * Quirk: we don't yet handle the XSAVES* instructions
+ * correctly, as we don't correctly convert between
+ * standard and compacted format when interfacing
+ * with user-space - so disable it for now.
+ *
+ * The difference is small: with recent CPUs the
+ * compacted format is only marginally smaller than
+ * the standard FPU state format.
+ *
+ * ( This is easy to backport while we are fixing
+ * XSAVES* support. )
+ */
+ setup_clear_cpu_cap(X86_FEATURE_XSAVES);
}
/*