diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2021-10-13 16:55:46 +0200 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2021-10-21 13:51:42 +0200 |
commit | 248452ce21aeb08da2d2af23d88f890886bd379f (patch) | |
tree | cfc901275ac0e1f6e4741d3cf5c5fc129acf14e5 /arch/x86/kernel/fpu/init.c | |
parent | x86/process: Move arch_thread_struct_whitelist() out of line (diff) | |
download | linux-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.c | 9 |
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(¤t->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(); } |