|
|
@@ -117,6 +117,12 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run)
|
|
|
vcpu_set_reg(vcpu, vcpu->arch.mmio_decode.rt, data);
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * The MMIO instruction is emulated and should not be re-executed
|
|
|
+ * in the guest.
|
|
|
+ */
|
|
|
+ kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu));
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
@@ -144,11 +150,6 @@ static int decode_hsr(struct kvm_vcpu *vcpu, bool *is_write, int *len)
|
|
|
vcpu->arch.mmio_decode.sign_extend = sign_extend;
|
|
|
vcpu->arch.mmio_decode.rt = rt;
|
|
|
|
|
|
- /*
|
|
|
- * The MMIO instruction is emulated and should not be re-executed
|
|
|
- * in the guest.
|
|
|
- */
|
|
|
- kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu));
|
|
|
return 0;
|
|
|
}
|
|
|
|