]> git.proxmox.com Git - mirror_qemu.git/commitdiff
KVM: Fix GSI number space limit
authorAlexander Graf <agraf@suse.de>
Fri, 6 Jun 2014 12:46:05 +0000 (14:46 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 18 Jun 2014 14:54:18 +0000 (16:54 +0200)
KVM tells us the number of GSIs it can handle inside the kernel. That value is
basically KVM_MAX_IRQ_ROUTES. However when we try to set the GSI mapping table,
it checks for

    r = -EINVAL;
    if (routing.nr >= KVM_MAX_IRQ_ROUTES)
        goto out;

erroring out even when we're only using all of the GSIs. To make sure we never
hit that limit, let's reduce the number of GSIs we get from KVM by one.

Cc: qemu-stable@nongnu.org
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
kvm-all.c

index 4e19eff0efeea85a47ab8b76b64601a2b6c73bf7..56a251bf8ec8988fa5053ab190c1b992c1a66feb 100644 (file)
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -938,7 +938,7 @@ void kvm_init_irq_routing(KVMState *s)
 {
     int gsi_count, i;
 
-    gsi_count = kvm_check_extension(s, KVM_CAP_IRQ_ROUTING);
+    gsi_count = kvm_check_extension(s, KVM_CAP_IRQ_ROUTING) - 1;
     if (gsi_count > 0) {
         unsigned int gsi_bits, i;