diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2013-07-15 17:45:03 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-05-20 13:05:58 +0200 |
commit | d426d9fba8ea5d728038a9bea6a7c51f11941157 (patch) | |
tree | 447cd6550e5d99703763c96e12c83f699c71275f /target-s390x | |
parent | 7bca3892cb951afb5945480b090e3fb93578cd6a (diff) |
s390x/virtio-ccw: wire up irq routing and irqfds
Make use of the new s390 adapter irq routing support to enable real
in-kernel irqfds for virtio-ccw with adapter interrupts.
Note that s390 doesn't provide the common KVM_CAP_IRQCHIP capability, but
rather needs KVM_CAP_S390_IRQCHIP to be enabled. This is to ensure backward
compatibility.
Reviewed-by: Thomas Huth <thuth@linux.vnet.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'target-s390x')
-rw-r--r-- | target-s390x/kvm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index 56179afece..bb731a0dcd 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -911,6 +911,16 @@ void kvm_s390_enable_css_support(S390CPU *cpu) void kvm_arch_init_irq_routing(KVMState *s) { + /* + * Note that while irqchip capabilities generally imply that cpustates + * are handled in-kernel, it is not true for s390 (yet); therefore, we + * have to override the common code kvm_halt_in_kernel_allowed setting. + */ + if (kvm_check_extension(s, KVM_CAP_IRQ_ROUTING)) { + kvm_irqfds_allowed = true; + kvm_gsi_routing_allowed = true; + kvm_halt_in_kernel_allowed = false; + } } int kvm_s390_assign_subch_ioeventfd(EventNotifier *notifier, uint32_t sch, |