[PATCH 0/3] KVM: x86: Fix fault-related bugs in LTR/LLDT emulation

From: Sean Christopherson
Date: Mon Jul 11 2022 - 19:28:16 EST


Patch 1 fixes a bug found by syzkaller where KVM attempts to set the
TSS.busy bit during LTR before checking that the new TSS.base is valid.

Patch 2 fixes a bug found by inspection (when reading the APM to verify
the non-canonical logic is correct) where KVM doesn't provide the correct
error code if the new TSS.base is non-canonical.

Patch 3 makes the "dangling userspace I/O" WARN_ON two separate WARN_ON_ONCE
so that a KVM bug doesn't spam the kernel log (keeping the WARN is desirable
specifically to detect these types of bugs).

Sean Christopherson (3):
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical
#GP
KVM: x86: WARN only once if KVM leaves a dangling userspace I/O
request

arch/x86/kvm/emulate.c | 23 +++++++++++------------
arch/x86/kvm/x86.c | 6 ++++--
2 files changed, 15 insertions(+), 14 deletions(-)


base-commit: b9b71f43683ae9d76b0989249607bbe8c9eb6c5c
--
2.37.0.144.g8ac04bfd2-goog