summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2014-06-06 14:46:05 +0200
committerMichael Roth <mdroth@linux.vnet.ibm.com>2014-07-15 19:28:01 -0500
commitb47506f55cf4fb01d04e3c76c77ca09b75cf75c6 (patch)
treed08cc89f293b96b84ab8eb54933cc4cc7d1a8755
parentf0c609dedeb06d939f4544280a6a23f6ca75211d (diff)
downloadqemu-b47506f55cf4fb01d04e3c76c77ca09b75cf75c6.tar.gz
KVM: Fix GSI number space limit
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> (cherry picked from commit 00008418aa22700f6c49e794e79f53aeb157d10f) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
-rw-r--r--kvm-all.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kvm-all.c b/kvm-all.c
index 9f18ea38b9..7e05f08c2e 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -965,7 +965,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;