arm/arm64: KVM: vgic: kill VGIC_MAX_CPUS
authorMarc Zyngier <marc.zyngier@arm.com>
Tue, 8 Jul 2014 11:09:03 +0000 (12:09 +0100)
committerChristoffer Dall <christoffer.dall@linaro.org>
Fri, 19 Sep 2014 01:48:57 +0000 (18:48 -0700)
We now have the information about the number of CPU interfaces in
the distributor itself. Let's get rid of VGIC_MAX_CPUS, and just
rely on KVM_MAX_VCPUS where we don't have the choice. Yet.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
include/kvm/arm_vgic.h
virt/kvm/arm/vgic.c

index b2f9936df3190839fd6229db9627584708ba30a6..3b73d7845124a6125b6f7cebdd406f1cfe14242d 100644 (file)
 #define VGIC_NR_SGIS           16
 #define VGIC_NR_PPIS           16
 #define VGIC_NR_PRIVATE_IRQS   (VGIC_NR_SGIS + VGIC_NR_PPIS)
-#define VGIC_MAX_CPUS          KVM_MAX_VCPUS
 
 #define VGIC_V2_MAX_LRS                (1 << 6)
 #define VGIC_V3_MAX_LRS                16
 
 /* Sanity checks... */
-#if (VGIC_MAX_CPUS > 8)
+#if (KVM_MAX_VCPUS > 8)
 #error Invalid number of CPU interfaces
 #endif
 
index 7d64dc242afc88d2cc91ac429bb0f62a20387ccb..599ad17e5436d77edd2fa00e36e1a09970a24fc9 100644 (file)
@@ -1297,7 +1297,7 @@ static bool vgic_queue_sgi(struct kvm_vcpu *vcpu, int irq)
 
        sources = *vgic_get_sgi_sources(dist, vcpu_id, irq);
 
-       for_each_set_bit(c, &sources, VGIC_MAX_CPUS) {
+       for_each_set_bit(c, &sources, dist->nr_cpus) {
                if (vgic_queue_irq(vcpu, c, irq))
                        clear_bit(c, &sources);
        }
@@ -1700,7 +1700,7 @@ int kvm_vgic_vcpu_init(struct kvm_vcpu *vcpu)
        struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
        int i;
 
-       if (vcpu->vcpu_id >= VGIC_MAX_CPUS)
+       if (vcpu->vcpu_id >= dist->nr_cpus)
                return -EBUSY;
 
        for (i = 0; i < VGIC_NR_IRQS; i++) {
@@ -1767,7 +1767,7 @@ static int vgic_init_maps(struct kvm *kvm)
        int nr_cpus, nr_irqs;
        int ret, i;
 
-       nr_cpus = dist->nr_cpus = VGIC_MAX_CPUS;
+       nr_cpus = dist->nr_cpus = KVM_MAX_VCPUS;
        nr_irqs = dist->nr_irqs = VGIC_NR_IRQS;
 
        ret  = vgic_init_bitmap(&dist->irq_enabled, nr_cpus, nr_irqs);