diff options
Diffstat (limited to 'drivers/kvm/x86_emulate.c')
| -rw-r--r-- | drivers/kvm/x86_emulate.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index 84af9cc737fa..f12bc2c74040 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -1384,7 +1384,11 @@ twobyte_insn: if (modrm_mod != 3 || modrm_rm != 1) goto cannot_emulate; - /* nop */ + rc = kvm_fix_hypercall(ctxt->vcpu); + if (rc) + goto done; + + kvm_emulate_hypercall(ctxt->vcpu); break; case 2: /* lgdt */ rc = read_descriptor(ctxt, ops, src.ptr, @@ -1395,7 +1399,10 @@ twobyte_insn: break; case 3: /* lidt/vmmcall */ if (modrm_mod == 3 && modrm_rm == 1) { - /* nop */ + rc = kvm_fix_hypercall(ctxt->vcpu); + if (rc) + goto done; + kvm_emulate_hypercall(ctxt->vcpu); } else { rc = read_descriptor(ctxt, ops, src.ptr, &size, &address, |
