@@ -8144,11 +8144,15 @@ static int emulator_fix_hypercall(struct x86_emulate_ctxt *ctxt)
struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt);
char instruction[3];
unsigned long rip = kvm_rip_read(vcpu);
+ int err;
kvm_x86_ops.patch_hypercall(vcpu, instruction);
- return emulator_write_emulated(ctxt, rip, instruction, 3,
+ err = emulator_write_emulated(ctxt, rip, instruction, 3,
&ctxt->exception);
+ if (err == X86EMUL_PROPAGATE_FAULT)
+ err = X86EMUL_CONTINUE;
+ return err;
}
static int dm_request_for_irq_injection(struct kvm_vcpu *vcpu)