From b0ac37af659b6ce4cb556adc3bda3752db129724 Mon Sep 17 00:00:00 2001 From: Sean Christopherson Date: Thu, 21 Oct 2021 16:40:41 -0700 Subject: [PATCH 6/6] KVM: x86: Move pointer for SEV-ES/fast string I/O into kvm_pio_request Signed-off-by: Sean Christopherson --- 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