[PATCH 6/6] KVM: x86: Move pointer for SEV-ES/fast string I/O into kvm_pio_request

From: Sean Christopherson
Date: Thu Oct 21 2021 - 19:40:41 EST


Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
arch/x86/include/asm/kvm_host.h | 4 +++-
arch/x86/kvm/x86.c | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 80f4b8a9233c..ae15a32cc9aa 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -385,6 +385,9 @@ struct kvm_pio_request {
int in;
int port;
int size;
+
+ /* Used to handle string I/O that doesn't originate in the emulator. */
+ void *string_data;
};

#define PT64_ROOT_MAX_LEVEL 5
@@ -701,7 +704,6 @@ struct kvm_vcpu_arch {

struct kvm_pio_request pio;
void *pio_data;
- void *guest_ins_data;

u8 event_exit_inst_len;

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index fad2c7192aa3..c4fb8a332111 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -12489,7 +12489,7 @@ static int complete_sev_es_emulated_outs(struct kvm_vcpu *vcpu)

static int complete_sev_es_emulated_ins(struct kvm_vcpu *vcpu)
{
- memcpy(vcpu->arch.guest_ins_data, vcpu->arch.pio_data,
+ memcpy(vcpu->arch.pio.string_data, vcpu->arch.pio_data,
vcpu->arch.pio.count * vcpu->arch.pio.size);
vcpu->arch.pio.count = 0;

@@ -12520,7 +12520,7 @@ static int kvm_sev_es_ins(struct kvm_vcpu *vcpu, unsigned int size,
if (ret)
return ret;

- vcpu->arch.guest_ins_data = data;
+ vcpu->arch.string_data = data;
vcpu->arch.complete_userspace_io = complete_sev_es_emulated_ins;
return 0;
}
--
2.33.0.1079.g6e70778dc9-goog


--kTbyx1pw6IySRUfp--