From 025a0881cbecf6e321a02bb9799f2ff16eec0234 Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Sun, 26 Jul 2009 17:10:01 +0300 Subject: [PATCH] --- yaml --- r: 156589 b: refs/heads/master c: 5116d8f6b977970ebefc1932c0f313163a6ec91f h: refs/heads/master i: 156587: e7a051e4eadfe523b01be6e11177e596f703baed v: v3 --- [refs] | 2 +- trunk/include/linux/kvm_host.h | 1 + trunk/virt/kvm/irq_comm.c | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0859cfdc984d..3d2aa7932ee5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d3bc2f91b4761a8d9f96bea167fef2f8c00dea54 +refs/heads/master: 5116d8f6b977970ebefc1932c0f313163a6ec91f diff --git a/trunk/include/linux/kvm_host.h b/trunk/include/linux/kvm_host.h index 16713dc672e4..3060bdc35ffe 100644 --- a/trunk/include/linux/kvm_host.h +++ b/trunk/include/linux/kvm_host.h @@ -110,6 +110,7 @@ struct kvm_memory_slot { struct kvm_kernel_irq_routing_entry { u32 gsi; + u32 type; int (*set)(struct kvm_kernel_irq_routing_entry *e, struct kvm *kvm, int level); union { diff --git a/trunk/virt/kvm/irq_comm.c b/trunk/virt/kvm/irq_comm.c index a8bd466d00cc..ddc17f0e2f35 100644 --- a/trunk/virt/kvm/irq_comm.c +++ b/trunk/virt/kvm/irq_comm.c @@ -160,7 +160,8 @@ void kvm_notify_acked_irq(struct kvm *kvm, unsigned irqchip, unsigned pin) unsigned gsi = pin; list_for_each_entry(e, &kvm->irq_routing, link) - if (e->irqchip.irqchip == irqchip && + if (e->type == KVM_IRQ_ROUTING_IRQCHIP && + e->irqchip.irqchip == irqchip && e->irqchip.pin == pin) { gsi = e->gsi; break; @@ -259,6 +260,7 @@ static int setup_routing_entry(struct kvm_kernel_irq_routing_entry *e, int delta; e->gsi = ue->gsi; + e->type = ue->type; switch (ue->type) { case KVM_IRQ_ROUTING_IRQCHIP: delta = 0;