]> Pileus Git - ~andy/linux/commitdiff
KVM: x86: add comments where MMIO does not return to the emulator
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 27 Aug 2013 13:41:43 +0000 (15:41 +0200)
committerGleb Natapov <gleb@redhat.com>
Wed, 28 Aug 2013 14:15:54 +0000 (17:15 +0300)
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>
arch/x86/kvm/x86.c

index cb276e97620365ab363777907b63f0a571df5030..e514b3cb8b9304024e25104a5598856ac16a661e 100644 (file)
@@ -5122,9 +5122,10 @@ restart:
                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;
                }
@@ -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;