Skip to content

Commit

Permalink
KVM: x86: add comments where MMIO does not return to the emulator
Browse files Browse the repository at this point in the history
Support for single-step in the emulator (new in 3.12) does not work for
MMIO or PIO writes, because they are completed without returning to
the emulator.  This is not worse than what we had in 3.11; still, add
comments so that the issue is not forgotten.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
  • Loading branch information
Paolo Bonzini authored and Gleb Natapov committed Aug 28, 2013
1 parent 94452b9 commit 0912c97
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions arch/x86/kvm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -5122,9 +5122,10 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu,
inject_emulated_exception(vcpu);
r = EMULATE_DONE;
} else if (vcpu->arch.pio.count) {
if (!vcpu->arch.pio.in)
if (!vcpu->arch.pio.in) {
/* FIXME: return into emulator if single-stepping. */
vcpu->arch.pio.count = 0;
else {
} else {
writeback = false;
vcpu->arch.complete_userspace_io = complete_emulated_pio;
}
Expand Down Expand Up @@ -6176,6 +6177,8 @@ static int complete_emulated_mmio(struct kvm_vcpu *vcpu)

if (vcpu->mmio_cur_fragment == vcpu->mmio_nr_fragments) {
vcpu->mmio_needed = 0;

/* FIXME: return into emulator if single-stepping. */
if (vcpu->mmio_is_write)
return 1;
vcpu->mmio_read_completed = 1;
Expand Down

0 comments on commit 0912c97

Please sign in to comment.