On Thu, Jan 20, 2022, Hou Wenlong wrote: > 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(). For posterity, KVM doesn't support CALL GATES or TASK GATES, so the "early" #NP check for those is missing. > Fixes: 38ba30ba51a00 (KVM: x86 emulator: Emulate task switch in emulator.c) > Signed-off-by: Hou Wenlong <houwenlong.hwl@xxxxxxxxxxxx> > --- Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx>