We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e2857b8 commit f363938Copy full SHA for f363938
arch/x86/kernel/fpu/init.c
@@ -78,13 +78,15 @@ static void fpu__init_system_early_generic(struct cpuinfo_x86 *c)
78
cr0 &= ~(X86_CR0_TS | X86_CR0_EM);
79
write_cr0(cr0);
80
81
- asm volatile("fninit ; fnstsw %0 ; fnstcw %1"
82
- : "+m" (fsw), "+m" (fcw));
+ if (!test_bit(X86_FEATURE_FPU, (unsigned long *)cpu_caps_cleared)) {
+ asm volatile("fninit ; fnstsw %0 ; fnstcw %1"
83
+ : "+m" (fsw), "+m" (fcw));
84
- if (fsw == 0 && (fcw & 0x103f) == 0x003f)
85
- set_cpu_cap(c, X86_FEATURE_FPU);
86
- else
87
- clear_cpu_cap(c, X86_FEATURE_FPU);
+ if (fsw == 0 && (fcw & 0x103f) == 0x003f)
+ set_cpu_cap(c, X86_FEATURE_FPU);
+ else
88
+ clear_cpu_cap(c, X86_FEATURE_FPU);
89
+ }
90
91
#ifndef CONFIG_MATH_EMULATION
92
if (!cpu_has_fpu) {
0 commit comments