On 12/11/18 11:43, Julien Grall wrote: > Hi, > > On 11/9/18 6:43 PM, Andrew Cooper wrote: >> On 09/10/18 12:23, Julien Grall wrote: >>> On 05/10/2018 15:54, Andrew Cooper wrote: >>>> --- >>>> xen/arch/arm/domain.c | 18 ++++++++++++++++++ >>>> xen/arch/x86/domain.c | 6 ++++++ >>>> xen/common/domain.c | 3 +++ >>>> 3 files changed, 27 insertions(+) >>>> >>>> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c >>>> index 43593a4..9676893 100644 >>>> --- a/xen/arch/arm/domain.c >>>> +++ b/xen/arch/arm/domain.c >>>> @@ -601,6 +601,8 @@ void vcpu_switch_to_aarch64_mode(struct vcpu *v) >>>> int arch_check_domain_config(struct xen_domctl_createdomain >>>> *config) >>>> { >>>> + unsigned int max_vcpus = 0; >>>> + >>>> /* Fill in the native GIC version, passed back to the >>>> toolstack. */ >>>> if ( config->arch.gic_version == XEN_DOMCTL_CONFIG_GIC_NATIVE ) >>>> { >>>> @@ -619,6 +621,22 @@ int arch_check_domain_config(struct >>>> xen_domctl_createdomain *config) >>>> } >>>> } >>>> + /* Calculate the maximum number of vcpus from the selected GIC >>>> version... */ >>>> + switch ( config->arch.gic_version ) >>>> + { >>>> + case GIC_V2: max_vcpus = 8; break; >>>> + case GIC_V3: max_vcpus = 255; break; >>>> + >>>> + default: >>>> + return -EOPNOTSUPP; >>>> + } >>> >>> I would prefer to keep those values in a separate helper implemented >>> by each vGIC. >> >> How do you intend that working? The values can't be hooked off a GIC >> object, because we don't have one yet. > > Sorry for the confusion. By each vGIC I meant implementation. I would > rework vgic_max_vcpus to take the GIC version in parameter and rather > number of vCPUs supported.
Thanks for the pointer. I'll see what I can do. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel