|
@@ -2130,7 +2130,7 @@ static int em_ret_far(struct x86_emulate_ctxt *ctxt)
|
|
|
/* Outer-privilege level return is not implemented */
|
|
|
if (ctxt->mode >= X86EMUL_MODE_PROT16 && (cs & 3) > cpl)
|
|
|
return X86EMUL_UNHANDLEABLE;
|
|
|
- rc = __load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS, 0, false,
|
|
|
+ rc = __load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS, cpl, false,
|
|
|
&new_desc);
|
|
|
if (rc != X86EMUL_CONTINUE)
|
|
|
return rc;
|