diff mbox series

[01/14] KVM: x86: nSVM: restore int_vector in svm_clear_vintr

Message ID 20210914154825.104886-2-mlevitsk@redhat.com
State Accepted
Commit aee77e1169c1900fe4248dc186962e745b479d9e
Headers show
Series [01/14] KVM: x86: nSVM: restore int_vector in svm_clear_vintr | expand

Commit Message

Maxim Levitsky Sept. 14, 2021, 3:48 p.m. UTC
In svm_clear_vintr we try to restore the virtual interrupt
injection that might be pending, but we fail to restore
the interrupt vector.

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
---
 arch/x86/kvm/svm/svm.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Paolo Bonzini Sept. 23, 2021, 2:04 p.m. UTC | #1
On 14/09/21 17:48, Maxim Levitsky wrote:
> In svm_clear_vintr we try to restore the virtual interrupt

> injection that might be pending, but we fail to restore

> the interrupt vector.

> 

> Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>

> ---

>   arch/x86/kvm/svm/svm.c | 2 ++

>   1 file changed, 2 insertions(+)

> 

> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c

> index 05e8d4d27969..b2e710a3fff6 100644

> --- a/arch/x86/kvm/svm/svm.c

> +++ b/arch/x86/kvm/svm/svm.c

> @@ -1566,6 +1566,8 @@ static void svm_clear_vintr(struct vcpu_svm *svm)

>   

>   		svm->vmcb->control.int_ctl |= svm->nested.ctl.int_ctl &

>   			V_IRQ_INJECTION_BITS_MASK;

> +

> +		svm->vmcb->control.int_vector = svm->nested.ctl.int_vector;

>   	}

>   

>   	vmcb_mark_dirty(svm->vmcb, VMCB_INTR);

> 


Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index 05e8d4d27969..b2e710a3fff6 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -1566,6 +1566,8 @@  static void svm_clear_vintr(struct vcpu_svm *svm)
 
 		svm->vmcb->control.int_ctl |= svm->nested.ctl.int_ctl &
 			V_IRQ_INJECTION_BITS_MASK;
+
+		svm->vmcb->control.int_vector = svm->nested.ctl.int_vector;
 	}
 
 	vmcb_mark_dirty(svm->vmcb, VMCB_INTR);