浏览代码

KVM: x86 emulator: VM86 segments must have DPL 3

Setting the segment DPL to 0 for at least the VM86 code segment makes
the VM entry fail on VMX.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Kevin Wolf 14 年之前
父节点
当前提交
66b0ab8fac
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      arch/x86/kvm/emulate.c

+ 2 - 0
arch/x86/kvm/emulate.c

@@ -1244,6 +1244,8 @@ static int load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 		seg_desc.type = 3;
 		seg_desc.type = 3;
 		seg_desc.p = 1;
 		seg_desc.p = 1;
 		seg_desc.s = 1;
 		seg_desc.s = 1;
+		if (ctxt->mode == X86EMUL_MODE_VM86)
+			seg_desc.dpl = 3;
 		goto load;
 		goto load;
 	}
 	}