KVM: SEV-ES: reuse advance_sev_es_emulated_ins for OUT too
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 22 Oct 2021 12:47:56 +0000 (08:47 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 Jun 2022 17:05:35 +0000 (13:05 -0400)
complete_emulator_pio_in() only has to be called by
complete_sev_es_emulated_ins() now; therefore, all that the function does
now is adjust sev_pio_count and sev_pio_data.  Which is the same for
both IN and OUT.

No functional change intended.

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

index 1a017a5..567d134 100644 (file)
@@ -13206,6 +13206,12 @@ int kvm_sev_es_mmio_read(struct kvm_vcpu *vcpu, gpa_t gpa, unsigned int bytes,
 }
 EXPORT_SYMBOL_GPL(kvm_sev_es_mmio_read);
 
+static void advance_sev_es_emulated_pio(struct kvm_vcpu *vcpu, unsigned count, int size)
+{
+       vcpu->arch.sev_pio_count -= count;
+       vcpu->arch.sev_pio_data += count * size;
+}
+
 static int kvm_sev_es_outs(struct kvm_vcpu *vcpu, unsigned int size,
                           unsigned int port);
 
@@ -13229,8 +13235,7 @@ static int kvm_sev_es_outs(struct kvm_vcpu *vcpu, unsigned int size,
                int ret = emulator_pio_out(vcpu, size, port, vcpu->arch.sev_pio_data, count);
 
                /* memcpy done already by emulator_pio_out.  */
-               vcpu->arch.sev_pio_count -= count;
-               vcpu->arch.sev_pio_data += count * size;
+               advance_sev_es_emulated_pio(vcpu, count, size);
                if (!ret)
                        break;
 
@@ -13246,12 +13251,6 @@ static int kvm_sev_es_outs(struct kvm_vcpu *vcpu, unsigned int size,
 static int kvm_sev_es_ins(struct kvm_vcpu *vcpu, unsigned int size,
                          unsigned int port);
 
-static void advance_sev_es_emulated_ins(struct kvm_vcpu *vcpu, unsigned count, int size)
-{
-       vcpu->arch.sev_pio_count -= count;
-       vcpu->arch.sev_pio_data += count * size;
-}
-
 static int complete_sev_es_emulated_ins(struct kvm_vcpu *vcpu)
 {
        unsigned count = vcpu->arch.pio.count;
@@ -13259,7 +13258,7 @@ static int complete_sev_es_emulated_ins(struct kvm_vcpu *vcpu)
        int port = vcpu->arch.pio.port;
 
        complete_emulator_pio_in(vcpu, vcpu->arch.sev_pio_data);
-       advance_sev_es_emulated_ins(vcpu, count, size);
+       advance_sev_es_emulated_pio(vcpu, count, size);
        if (vcpu->arch.sev_pio_count)
                return kvm_sev_es_ins(vcpu, size, port);
        return 1;
@@ -13275,7 +13274,7 @@ static int kvm_sev_es_ins(struct kvm_vcpu *vcpu, unsigned int size,
                        break;
 
                /* Emulation done by the kernel.  */
-               advance_sev_es_emulated_ins(vcpu, count, size);
+               advance_sev_es_emulated_pio(vcpu, count, size);
                if (!vcpu->arch.sev_pio_count)
                        return 1;
        }