Re: [PATCH 2/5] kvm: x86: Add payload operands to kvm_multiple_exception

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 8 Oct 2018, at 21:29, Jim Mattson <jmattson@xxxxxxxxxx> wrote:
> 
> kvm_multiple_exception now takes two additional operands: has_payload
> and payload, so that updates to CR2 (and DR6 under VMX) can be delayed
> until the exception is delivered.
> 
> Reported-by: Jim Mattson <jmattson@xxxxxxxxxx>
> Suggested-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Signed-off-by: Jim Mattson <jmattson@xxxxxxxxxx>
> Reviewed-by: Peter Shier <pshier@xxxxxxxxxx>
> ---
> arch/x86/kvm/x86.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index dbc538d66505..7c4e6845fe80 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -402,7 +402,7 @@ static int exception_type(int vector)
> 
> static void kvm_multiple_exception(struct kvm_vcpu *vcpu,
> 		unsigned nr, bool has_error, u32 error_code,
> -		bool reinject)
> +	        bool has_payload, unsigned long payload, bool reinject)
> {
> 	u32 prev_nr;
> 	int class1, class2;
> @@ -431,8 +431,8 @@ static void kvm_multiple_exception(struct kvm_vcpu *vcpu,
> 		vcpu->arch.exception.has_error_code = has_error;
> 		vcpu->arch.exception.nr = nr;
> 		vcpu->arch.exception.error_code = error_code;
> -		vcpu->arch.exception.has_payload = false;
> -		vcpu->arch.exception.payload = 0;
> +		vcpu->arch.exception.has_payload = has_payload;
> +		vcpu->arch.exception.payload = payload;
> 		return;
> 	}
> 
> @@ -468,13 +468,13 @@ static void kvm_multiple_exception(struct kvm_vcpu *vcpu,
> 
> void kvm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr)
> {
> -	kvm_multiple_exception(vcpu, nr, false, 0, false);
> +	kvm_multiple_exception(vcpu, nr, false, 0, false, 0, false);
> }
> EXPORT_SYMBOL_GPL(kvm_queue_exception);
> 
> void kvm_requeue_exception(struct kvm_vcpu *vcpu, unsigned nr)
> {
> -	kvm_multiple_exception(vcpu, nr, false, 0, true);
> +	kvm_multiple_exception(vcpu, nr, false, 0, false, 0, true);
> }
> EXPORT_SYMBOL_GPL(kvm_requeue_exception);
> 
> @@ -521,13 +521,13 @@ EXPORT_SYMBOL_GPL(kvm_inject_nmi);
> 
> void kvm_queue_exception_e(struct kvm_vcpu *vcpu, unsigned nr, u32 error_code)
> {
> -	kvm_multiple_exception(vcpu, nr, true, error_code, false);
> +	kvm_multiple_exception(vcpu, nr, true, error_code, false, 0, false);
> }
> EXPORT_SYMBOL_GPL(kvm_queue_exception_e);
> 
> void kvm_requeue_exception_e(struct kvm_vcpu *vcpu, unsigned nr, u32 error_code)
> {
> -	kvm_multiple_exception(vcpu, nr, true, error_code, true);
> +	kvm_multiple_exception(vcpu, nr, true, error_code, false, 0, true);
> }
> EXPORT_SYMBOL_GPL(kvm_requeue_exception_e);
> 
> -- 
> 2.19.0.605.g01d371f741-goog
> 

I would give more context on commit message. Referring to previous commit should suffice.
Reviewed-By: Liran Alon <liran.alon@xxxxxxxxxx>





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux