diff --git a/sys/amd64/amd64/fpu.c b/sys/amd64/amd64/fpu.c --- a/sys/amd64/amd64/fpu.c +++ b/sys/amd64/amd64/fpu.c @@ -241,13 +241,16 @@ static void init_xsave(void) { + static int xsave_initialized; - if (use_xsave) + if (xsave_initialized == 1) return; if ((cpu_feature2 & CPUID2_XSAVE) == 0) - return; + goto done; use_xsave = 1; TUNABLE_INT_FETCH("hw.use_xsave", &use_xsave); +done: + xsave_initialized = 1; } DEFINE_IFUNC(, void, fpusave, (void *))