]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
KVM: irqchip: Convey devid to kvm_set_msi
authorEric Auger <eric.auger@redhat.com>
Fri, 22 Jul 2016 16:20:39 +0000 (16:20 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 22 Jul 2016 17:51:58 +0000 (18:51 +0100)
on ARM, a devid field is populated in kvm_msi struct in case the
flag is set to KVM_MSI_VALID_DEVID. Let's propagate both flags and
devid field in kvm_kernel_irq_routing_entry.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
virt/kvm/irqchip.c

index 8db197bb6c7a92d6508c66cd6a4cf3b9afc84562..0c000546aedc2badbee3bb22bc8d399f1211418e 100644 (file)
@@ -62,12 +62,14 @@ int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi)
 {
        struct kvm_kernel_irq_routing_entry route;
 
-       if (!irqchip_in_kernel(kvm) || msi->flags != 0)
+       if (!irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID))
                return -EINVAL;
 
        route.msi.address_lo = msi->address_lo;
        route.msi.address_hi = msi->address_hi;
        route.msi.data = msi->data;
+       route.msi.flags = msi->flags;
+       route.msi.devid = msi->devid;
 
        return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false);
 }