]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
authorHou Wenlong <houwenlong.hwl@antgroup.com>
Tue, 8 Feb 2022 09:34:03 +0000 (17:34 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 1 Mar 2022 13:50:49 +0000 (08:50 -0500)
commitf51ccd2187fbfac5953140fd688f4effd950754d
treeec1db110dafc9a400be658a186b748695307dc1f
parentc125cce5d630bbb21578d62685280191715cbccc
KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()

Per Intel's SDM on the "Instruction Set Reference", when
loading segment descriptor, not-present segment check should
be after all type and privilege checks. But the emulator checks
it first, then #NP is triggered instead of #GP if privilege fails
and segment is not present. Put not-present segment check after
type and privilege checks in __load_segment_descriptor().

Fixes: b7695559c973f (KVM: x86 emulator: Emulate task switch in emulator.c)
Reviewed-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
Message-Id: <52573c01d369f506cadcf7233812427cf7db81a7.1644292363.git.houwenlong.hwl@antgroup.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c