KVM: x86: complete fast IN directly with complete_emulator_pio_in()
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Jun 2022 17:32:29 +0000 (13:32 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 Jun 2022 16:53:07 +0000 (12:53 -0400)
Use complete_emulator_pio_in() directly when completing fast PIO, there's
no need to bounce through emulator_pio_in(): the comment about ECX
changing doesn't apply to fast PIO, which isn't used for string I/O.

No functional change intended.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index d88600e..d66a873 100644 (file)
@@ -8871,11 +8871,7 @@ static int complete_fast_pio_in(struct kvm_vcpu *vcpu)
        /* For size less than 4 we merge, else we zero extend */
        val = (vcpu->arch.pio.size < 4) ? kvm_rax_read(vcpu) : 0;
 
-       /*
-        * Since vcpu->arch.pio.count == 1 let emulator_pio_in perform
-        * the copy and tracing
-        */
-       emulator_pio_in(vcpu, vcpu->arch.pio.size, vcpu->arch.pio.port, &val, 1);
+       complete_emulator_pio_in(vcpu, &val);
        kvm_rax_write(vcpu, val);
 
        return kvm_skip_emulated_instruction(vcpu);