summaryrefslogtreecommitdiff
path: root/kvm-all.c
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2011-10-15 14:08:26 +0200
committerJan Kiszka <jan.kiszka@siemens.com>2012-01-19 12:14:42 +0100
commit9b5b76d44930dc9266bb6d30862704cb3c86d2ca (patch)
treecf2c3fef0b9925485ce7e58579ec19367e74a8c4 /kvm-all.c
parent84b058d7df1e75543ef7422d97b039cd413f68f1 (diff)
downloadqemu-9b5b76d44930dc9266bb6d30862704cb3c86d2ca.tar.gz
kvm: x86: Establish IRQ0 override control
KVM is forced to disable the IRQ0 override when we run with in-kernel irqchip but without IRQ routing support of the kernel. Set the fwcfg value correspondingly. This aligns us with qemu-kvm. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Diffstat (limited to 'kvm-all.c')
-rw-r--r--kvm-all.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kvm-all.c b/kvm-all.c
index fa9d92d005..88f11567f7 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1307,6 +1307,11 @@ int kvm_has_gsi_routing(void)
return kvm_check_extension(kvm_state, KVM_CAP_IRQ_ROUTING);
}
+int kvm_allows_irq0_override(void)
+{
+ return !kvm_enabled() || !kvm_irqchip_in_kernel() || kvm_has_gsi_routing();
+}
+
void kvm_setup_guest_memory(void *start, size_t size)
{
if (!kvm_has_sync_mmu()) {