]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
authorSean Christopherson <seanjc@google.com>
Mon, 11 Jul 2022 23:27:48 +0000 (23:27 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Aug 2022 09:17:20 +0000 (11:17 +0200)
commite722109730df3f55fa79e37501f65f4491ce499b
treefb7b0766289889fd573387b4818413f9ad5656a3
parent1eb8b69e0fef295b85309930696131f4ef89dea3
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks

commit 1b81d1d45d06fa54fbc50e109335741b1a547c19 upstream.

Wait to mark the TSS as busy during LTR emulation until after all fault
checks for the LTR have passed.  Specifically, don't mark the TSS busy if
the new TSS base is non-canonical.

Opportunistically drop the one-off !seg_desc.PRESENT check for TR as the
only reason for the early check was to avoid marking a !PRESENT TSS as
busy, i.e. the common !PRESENT is now done before setting the busy bit.

Fixes: 2268660cef03 ("KVM: x86: Emulator ignores LDTR/TR extended base on LLDT/LTR")
Reported-by: syzbot+760a73552f47a8cd0fd9@syzkaller.appspotmail.com
Cc: stable@vger.kernel.org
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: Hou Wenlong <houwenlong.hwl@antgroup.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Link: https://lore.kernel.org/r/20220711232750.1092012-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/emulate.c