aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Auger <eric.auger@redhat.com>2016-07-22 12:20:39 -0400
committerMarc Zyngier <marc.zyngier@arm.com>2016-07-22 13:51:58 -0400
commitebe915259c731ee75e94ca86774c3d61df734d28 (patch)
tree3d3ec00bd323000bf79f5f66acee41a3d1aaabde
parent0455e72c9ae9b7e9589f2cc5ba5bc7804be83342 (diff)
KVM: irqchip: Convey devid to kvm_set_msi
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>
-rw-r--r--virt/kvm/irqchip.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c
index 8db197bb6c7a..0c000546aedc 100644
--- a/virt/kvm/irqchip.c
+++ b/virt/kvm/irqchip.c
@@ -62,12 +62,14 @@ int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi)
62{ 62{
63 struct kvm_kernel_irq_routing_entry route; 63 struct kvm_kernel_irq_routing_entry route;
64 64
65 if (!irqchip_in_kernel(kvm) || msi->flags != 0) 65 if (!irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID))
66 return -EINVAL; 66 return -EINVAL;
67 67
68 route.msi.address_lo = msi->address_lo; 68 route.msi.address_lo = msi->address_lo;
69 route.msi.address_hi = msi->address_hi; 69 route.msi.address_hi = msi->address_hi;
70 route.msi.data = msi->data; 70 route.msi.data = msi->data;
71 route.msi.flags = msi->flags;
72 route.msi.devid = msi->devid;
71 73
72 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false); 74 return kvm_set_msi(&route, kvm, KVM_USERSPACE_IRQ_SOURCE_ID, 1, false);
73} 75}