Interrupt to self can sent without knowing the APIC ID.

Signed-off-by: Radim Krčmář <rkrc...@redhat.com>
---
 arch/x86/kvm/hyperv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 99cde5220e07..313957ec9a9d 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -305,13 +305,13 @@ static int synic_set_irq(struct kvm_vcpu_hv_synic *synic, 
u32 sint)
                return -ENOENT;
 
        memset(&irq, 0, sizeof(irq));
-       irq.dest_id = kvm_apic_id(vcpu->arch.apic);
+       irq.shorthand = APIC_DEST_SELF;
        irq.dest_mode = APIC_DEST_PHYSICAL;
        irq.delivery_mode = APIC_DM_FIXED;
        irq.vector = vector;
        irq.level = 1;
 
-       ret = kvm_irq_delivery_to_apic(vcpu->kvm, NULL, &irq, NULL);
+       ret = kvm_irq_delivery_to_apic(vcpu->kvm, vcpu->arch.apic, &irq, NULL);
        trace_kvm_hv_synic_set_irq(vcpu->vcpu_id, sint, irq.vector, ret);
        return ret;
 }
-- 
2.10.2

Reply via email to