aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/fpu/init.c
diff options
context:
space:
mode:
authorGravatar Thomas Gleixner <tglx@linutronix.de> 2021-10-13 16:55:46 +0200
committerGravatar Borislav Petkov <bp@suse.de> 2021-10-21 13:51:42 +0200
commit248452ce21aeb08da2d2af23d88f890886bd379f (patch)
treecfc901275ac0e1f6e4741d3cf5c5fc129acf14e5 /arch/x86/kernel/fpu/init.c
parentx86/process: Move arch_thread_struct_whitelist() out of line (diff)
downloadlinux-248452ce21aeb08da2d2af23d88f890886bd379f.tar.gz
linux-248452ce21aeb08da2d2af23d88f890886bd379f.tar.bz2
linux-248452ce21aeb08da2d2af23d88f890886bd379f.zip
x86/fpu: Add size and mask information to fpstate
Add state size and feature mask information to the fpstate container. This will be used for runtime checks with the upcoming support for dynamically enabled features and dynamically sized buffers. That avoids conditionals all over the place as the required information is accessible for both default and extended buffers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20211013145322.921388806@linutronix.de
Diffstat (limited to 'arch/x86/kernel/fpu/init.c')
-rw-r--r--arch/x86/kernel/fpu/init.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
index cffbaf491886..65d763faace9 100644
--- a/arch/x86/kernel/fpu/init.c
+++ b/arch/x86/kernel/fpu/init.c
@@ -212,6 +212,14 @@ static void __init fpu__init_system_xstate_size_legacy(void)
}
fpu_user_xstate_size = fpu_kernel_xstate_size;
+ fpstate_reset(&current->thread.fpu);
+}
+
+static void __init fpu__init_init_fpstate(void)
+{
+ /* Bring init_fpstate size and features up to date */
+ init_fpstate.size = fpu_kernel_xstate_size;
+ init_fpstate.xfeatures = xfeatures_mask_all;
}
/*
@@ -233,4 +241,5 @@ void __init fpu__init_system(struct cpuinfo_x86 *c)
fpu__init_system_xstate_size_legacy();
fpu__init_system_xstate();
fpu__init_task_struct_size();
+ fpu__init_init_fpstate();
}