diff options
author | Christoffer Dall <cdall@linaro.org> | 2017-05-04 13:24:20 +0200 |
---|---|---|
committer | Christoffer Dall <cdall@linaro.org> | 2017-06-08 16:59:57 +0200 |
commit | c6ccd30e0de384f506449474ca780ff680ad4217 (patch) | |
tree | 5fa2382ca0cb42e08e0dd080f9a68769f5547a6b /include/kvm | |
parent | 99a1db7a2c9b2ecb9a801cee3f6a7a71945a2fca (diff) | |
download | op-kernel-dev-c6ccd30e0de384f506449474ca780ff680ad4217.zip op-kernel-dev-c6ccd30e0de384f506449474ca780ff680ad4217.tar.gz |
KVM: arm/arm64: Introduce an allocator for in-kernel irq lines
Having multiple devices being able to signal the same interrupt line is
very confusing and almost certainly guarantees a configuration error.
Therefore, introduce a very simple allocator which allows a device to
claim an interrupt line from the vgic for a given VM.
Signed-off-by: Christoffer Dall <cdall@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'include/kvm')
-rw-r--r-- | include/kvm/arm_vgic.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h index dde59fb..5d5b345 100644 --- a/include/kvm/arm_vgic.h +++ b/include/kvm/arm_vgic.h @@ -121,6 +121,9 @@ struct vgic_irq { u8 source; /* GICv2 SGIs only */ u8 priority; enum vgic_irq_config config; /* Level or edge */ + + void *owner; /* Opaque pointer to reserve an interrupt + for in-kernel devices. */ }; struct vgic_register_region; @@ -340,4 +343,6 @@ int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi); */ int kvm_vgic_setup_default_irq_routing(struct kvm *kvm); +int kvm_vgic_set_owner(struct kvm_vcpu *vcpu, unsigned int intid, void *owner); + #endif /* __KVM_ARM_VGIC_H */ |