diff options
author | Fenghua Yu <fenghua.yu@intel.com> | 2012-11-13 19:32:50 (GMT) |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-11-14 23:28:11 (GMT) |
commit | 6f5298c2139b06925037490367906f3d73955b86 (patch) | |
tree | 54d85359db7189c0bad2e3d0ac72a9b2f63e87fd /arch/x86 | |
parent | 8d966a04107e56993a051cd41ead0b4f23ba2414 (diff) | |
download | linux-6f5298c2139b06925037490367906f3d73955b86.tar.xz |
x86/i387.c: Initialize thread xstate only on CPU0 only once
init_thread_xstate() is only called once to avoid overriding xstate_size during
boot time or during CPU hotplug.
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1352835171-3958-14-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/i387.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c index 675a050..245a71d 100644 --- a/arch/x86/kernel/i387.c +++ b/arch/x86/kernel/i387.c @@ -175,7 +175,11 @@ void __cpuinit fpu_init(void) cr0 |= X86_CR0_EM; write_cr0(cr0); - if (!smp_processor_id()) + /* + * init_thread_xstate is only called once to avoid overriding + * xstate_size during boot time or during CPU hotplug. + */ + if (xstate_size == 0) init_thread_xstate(); mxcsr_feature_mask_init(); |