summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorFenghua Yu <fenghua.yu@intel.com>2012-11-13 19:32:50 (GMT)
committerH. Peter Anvin <hpa@linux.intel.com>2012-11-14 23:28:11 (GMT)
commit6f5298c2139b06925037490367906f3d73955b86 (patch)
tree54d85359db7189c0bad2e3d0ac72a9b2f63e87fd /arch/x86
parent8d966a04107e56993a051cd41ead0b4f23ba2414 (diff)
downloadlinux-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.c6
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();