On 15/08/18 14:52, Julien Grall wrote: > Hi Andrew, > > On 08/15/2018 02:50 PM, Andrew Cooper wrote: >> On 15/08/18 14:17, Julien Grall wrote: >>>>> diff --git a/xen/arch/arm/vgic/vgic.c b/xen/arch/arm/vgic/vgic.c >>>>> index 832632a..4124817 100644 >>>>> --- a/xen/arch/arm/vgic/vgic.c >>>>> +++ b/xen/arch/arm/vgic/vgic.c >>>>> @@ -951,27 +951,7 @@ void vgic_sync_hardware_irq(struct domain *d, >>>>> unsigned int vgic_max_vcpus(const struct domain *d) >>>>> { >>>>> - unsigned int vgic_vcpu_limit; >>>>> - >>>>> - switch ( d->arch.vgic.version ) >>>>> - { >>>>> - case GIC_INVALID: >>>>> - /* >>>>> - * Since evtchn_init would call domain_max_vcpus for >>>>> poll_mask >>>>> - * allocation before the VGIC has been initialised, we >>>>> need to >>>>> - * return some safe value in this case. As this is for >>>>> allocation >>>>> - * purposes, go with the maximum value. >>>>> - */ >>>>> - vgic_vcpu_limit = MAX_VIRT_CPUS; >>>>> - break; >>>>> - case GIC_V2: >>>>> - vgic_vcpu_limit = VGIC_V2_MAX_CPUS; >>>>> - break; >>>>> - default: >>>>> - BUG(); >>>>> - } >>>>> - >>>>> - return min_t(unsigned int, MAX_VIRT_CPUS, vgic_vcpu_limit); >>>>> + return min_t(unsigned int, MAX_VIRT_CPUS, >>>>> d->arch.vgic.handler->max_vcpus); >>>>> } >>>> >>>> Since both implementations are equal now, can you place this in vgic.h >>>> as a static inline function? >>> >>> vgic/vgic.c is part of the new vGIC implementation (selectable at th e >>> compilation time) and using a different layout for the vgic_dist >>> structure. The structure is described in asm/new_vgic.h and does not >>> store the max vcpus anymore. >>> >>> Instead, the switch should be retained and only the case GIC_INVALID >>> should be dropped. >> >> What about GIC_V3? VGIC_V3_MAX_CPUS seems to be 255 at the moment. > > GICv3 is not yet supported by the new vGIC and disabled at compile > time. So we should never reach this code with d->arch.vgic.version == > GIC_V3.
Ok - no problem. I'll refresh this to just deleting the INVALID case. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel