selftests/x86/fsgsbase: Fix GS == 1, 2, and 3 tests
authorAndy Lutomirski <luto@kernel.org>
Mon, 2 Nov 2020 19:51:10 +0000 (11:51 -0800)
committerBorislav Petkov <bp@suse.de>
Tue, 24 Nov 2020 12:46:16 +0000 (13:46 +0100)
commit716572b0003ef67a4889bd7d85baf5099c5a0248
treed8e205314e9865d8bb9c078735fda51a38b7c512
parentb023fd5f741f34d2cd90258ccc3f245924d2eadd
selftests/x86/fsgsbase: Fix GS == 1, 2, and 3 tests

Setting GS to 1, 2, or 3 causes a nonsensical part of the IRET microcode
to change GS back to zero on a return from kernel mode to user mode. The
result is that these tests fail randomly depending on when interrupts
happen. Detect when this happens and let the test pass.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/7567fd44a1d60a9424f25b19a998f12149993b0d.1604346596.git.luto@kernel.org
tools/testing/selftests/x86/fsgsbase.c