Skip to content

Commit

Permalink
Linux 5.16 compat: restore FSR and FSAVE
Browse files Browse the repository at this point in the history
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
  • Loading branch information
behlendorf authored Mar 19, 2022
1 parent 4217506 commit 9e3619c
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions include/os/linux/kernel/linux/simd_x86.h
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,9 @@ kfpu_end(void)
if (static_cpu_has(X86_FEATURE_XSAVE)) {
kfpu_do_xrstor("xrstor", &state->xsave, ~0);
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
kfpu_save_fxsr(&state->fxsave);
kfpu_restore_fxsr(&state->fxsave);
} else {
kfpu_save_fsave(&state->fsave);
kfpu_restore_fsave(&state->fsave);
}
out:
local_irq_enable();
Expand Down

0 comments on commit 9e3619c

Please sign in to comment.