diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-03-12 12:40:31 +0100 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-06-10 09:50:27 +0200 |
commit | bbd8bb8e3245cf6fc6d12b10b3320ab183adb866 (patch) | |
tree | 22a30379a02d6d83be2f11bc432f81e82d4953eb /hw | |
parent | de13d2161473d02ae97ec0f8e4503147554892dd (diff) |
s390x/kvm: inject via flic
Try to inject floating interrupts via the flic if it is available.
This allows us to inject the full range of floating interrupts.
Reviewed-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/intc/s390_flic_kvm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index a734094292..b471e7a41e 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -117,6 +117,16 @@ static int flic_enqueue_irqs(void *buf, uint64_t len, return rc ? -errno : 0; } +int kvm_s390_inject_flic(struct kvm_s390_irq *irq) +{ + static KVMS390FLICState *flic; + + if (unlikely(!flic)) { + flic = KVM_S390_FLIC(s390_get_flic()); + } + return flic_enqueue_irqs(irq, sizeof(*irq), flic); +} + /** * __get_all_irqs - store all pending irqs in buffer * @flic: pointer to flic device state |