]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop queue-4.9/kvm-nvmx-handle-nested-posted-interrupts-when-apicv-is-disabled-for...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2020 13:18:09 +0000 (14:18 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Feb 2020 13:18:09 +0000 (14:18 +0100)
It never was applied here

queue-4.9/kvm-nvmx-handle-nested-posted-interrupts-when-apicv-is-disabled-for-l1.patch [deleted file]
queue-4.9/series

diff --git a/queue-4.9/kvm-nvmx-handle-nested-posted-interrupts-when-apicv-is-disabled-for-l1.patch b/queue-4.9/kvm-nvmx-handle-nested-posted-interrupts-when-apicv-is-disabled-for-l1.patch
deleted file mode 100644 (file)
index 676ca65..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From 91a5f413af596ad01097e59bf487eb07cb3f1331 Mon Sep 17 00:00:00 2001
-From: Vitaly Kuznetsov <vkuznets@redhat.com>
-Date: Thu, 20 Feb 2020 18:22:05 +0100
-Subject: KVM: nVMX: handle nested posted interrupts when apicv is disabled for L1
-
-From: Vitaly Kuznetsov <vkuznets@redhat.com>
-
-commit 91a5f413af596ad01097e59bf487eb07cb3f1331 upstream.
-
-Even when APICv is disabled for L1 it can (and, actually, is) still
-available for L2, this means we need to always call
-vmx_deliver_nested_posted_interrupt() when attempting an interrupt
-delivery.
-
-Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
-diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
-index 40a0c0fd95ca..a84e8c5acda8 100644
---- a/arch/x86/include/asm/kvm_host.h
-+++ b/arch/x86/include/asm/kvm_host.h
-@@ -1146,7 +1146,7 @@ struct kvm_x86_ops {
-       void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap);
-       void (*set_virtual_apic_mode)(struct kvm_vcpu *vcpu);
-       void (*set_apic_access_page_addr)(struct kvm_vcpu *vcpu, hpa_t hpa);
--      void (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
-+      int (*deliver_posted_interrupt)(struct kvm_vcpu *vcpu, int vector);
-       int (*sync_pir_to_irr)(struct kvm_vcpu *vcpu);
-       int (*set_tss_addr)(struct kvm *kvm, unsigned int addr);
-       int (*set_identity_map_addr)(struct kvm *kvm, u64 ident_addr);
-diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index afcd30d44cbb..cc8ee8125712 100644
---- a/arch/x86/kvm/lapic.c
-+++ b/arch/x86/kvm/lapic.c
-@@ -1046,11 +1046,8 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
-                                                      apic->regs + APIC_TMR);
-               }
--              if (vcpu->arch.apicv_active)
--                      kvm_x86_ops->deliver_posted_interrupt(vcpu, vector);
--              else {
-+              if (kvm_x86_ops->deliver_posted_interrupt(vcpu, vector)) {
-                       kvm_lapic_set_irr(vector, apic);
--
-                       kvm_make_request(KVM_REQ_EVENT, vcpu);
-                       kvm_vcpu_kick(vcpu);
-               }
-diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
-index a391b29138f0..8787a123b8e7 100644
---- a/arch/x86/kvm/svm.c
-+++ b/arch/x86/kvm/svm.c
-@@ -5258,8 +5258,11 @@ static void svm_load_eoi_exitmap(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap)
-       return;
- }
--static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
-+static int svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
- {
-+      if (!vcpu->arch.apicv_active)
-+              return -1;
-+
-       kvm_lapic_set_irr(vec, vcpu->arch.apic);
-       smp_mb__after_atomic();
-@@ -5271,6 +5274,8 @@ static void svm_deliver_avic_intr(struct kvm_vcpu *vcpu, int vec)
-               put_cpu();
-       } else
-               kvm_vcpu_wake_up(vcpu);
-+
-+      return 0;
- }
- static bool svm_dy_apicv_has_pending_interrupt(struct kvm_vcpu *vcpu)
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -3822,24 +3822,29 @@ static int vmx_deliver_nested_posted_interrupt(struct kvm_vcpu *vcpu,
-  * 2. If target vcpu isn't running(root mode), kick it to pick up the
-  * interrupt from PIR in next vmentry.
-  */
--static void vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
-+static int vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
- {
-       struct vcpu_vmx *vmx = to_vmx(vcpu);
-       int r;
-       r = vmx_deliver_nested_posted_interrupt(vcpu, vector);
-       if (!r)
--              return;
-+              return 0;
-+
-+      if (!vcpu->arch.apicv_active)
-+              return -1;
-       if (pi_test_and_set_pir(vector, &vmx->pi_desc))
--              return;
-+              return 0;
-       /* If a previous notification has sent the IPI, nothing to do.  */
-       if (pi_test_and_set_on(&vmx->pi_desc))
--              return;
-+              return 0;
-       if (!kvm_vcpu_trigger_posted_interrupt(vcpu, false))
-               kvm_vcpu_kick(vcpu);
-+
-+      return 0;
- }
- /*
index bbf097ebc0c68d84c1910c285293abedf83dcd57..b2fea674c66ff47debd3858a731b5afd961148d9 100644 (file)
@@ -163,4 +163,3 @@ netfilter-xt_hashlimit-limit-the-max-size-of-hashtable.patch
 ata-ahci-add-shutdown-to-freeze-hardware-resources-of-ahci.patch
 xen-enable-interrupts-when-calling-_cond_resched.patch
 s390-mm-explicitly-compare-page_default_key-against-zero-in-storage_key_init_range.patch
-kvm-nvmx-handle-nested-posted-interrupts-when-apicv-is-disabled-for-l1.patch