diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2012-09-07 13:50:31 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2012-09-07 13:50:31 +0100 |
commit | 4d7a6ffddee2cc40be69a80c675d48d2e1b44143 (patch) | |
tree | f49a282848f83bb10b653404abd2e1d1cc8d0f66 | |
parent | 6e4c0d1f03d6ab407509c32fab7cb4b8230f57ff (diff) |
kvm-all.c: Move init of irqchip_inject_ioctl out of kvm_irqchip_create()
Move the init of the irqchip_inject_ioctl field of KVMState out of
kvm_irqchip_create() and into kvm_init(), so that kvm_set_irq()
can be used even when no irqchip is created (for architectures
that support async interrupt notification even without an in
kernel irqchip).
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | kvm-all.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -1200,10 +1200,6 @@ static int kvm_irqchip_create(KVMState *s) return ret; } - s->irqchip_inject_ioctl = KVM_IRQ_LINE; - if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) { - s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS; - } kvm_kernel_irqchip = true; /* If we have an in-kernel IRQ chip then we must have asynchronous * interrupt delivery (though the reverse is not necessarily true) @@ -1350,6 +1346,11 @@ int kvm_init(void) s->direct_msi = (kvm_check_extension(s, KVM_CAP_SIGNAL_MSI) > 0); #endif + s->irqchip_inject_ioctl = KVM_IRQ_LINE; + if (kvm_check_extension(s, KVM_CAP_IRQ_INJECT_STATUS)) { + s->irqchip_inject_ioctl = KVM_IRQ_LINE_STATUS; + } + ret = kvm_arch_init(s); if (ret < 0) { goto err; |