Linux 5.16 compat: restore FSR and FSAVE

Commit 3b52ccd introduced a flaw where FSR and FSAVE are not restored
when using a Linux 5.16 kernel.  These instructions are only used when
XSAVE is not supported by the processor meaning only some systems will
encounter this issue.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Attila Fülöp <attila@fueloep.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #13210
Closes #13236
This commit is contained in:
Brian Behlendorf 2022-03-19 12:46:33 -07:00 committed by GitHub
parent 565089f592
commit 6b444cb971
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -379,9 +379,9 @@ kfpu_end(void)
if (static_cpu_has(X86_FEATURE_XSAVE)) {
kfpu_do_xrstor("xrstor", state, ~0);
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
kfpu_save_fxsr(state);
kfpu_restore_fxsr(state);
} else {
kfpu_save_fsave(state);
kfpu_restore_fsave(state);
}
out:
local_irq_enable();