[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 12/12] xen/domain: Allocate d->vcpu[] in domain_create()
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. Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |