[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5/7] x86/domain: Optimise the order of actions in arch_domain_create()
On 09/03/18 16:54, Jan Beulich wrote: >>>> On 09.03.18 at 14:18, <andrew.cooper3@xxxxxxxxxx> wrote: >> --- a/xen/arch/x86/domain.c >> +++ b/xen/arch/x86/domain.c >> @@ -430,20 +430,37 @@ int arch_domain_create(struct domain *d, unsigned int >> domcr_flags, >> struct xen_arch_domainconfig *config) >> { >> bool paging_initialised = false; >> + uint32_t emflags; >> int rc; >> >> - if ( config == NULL && !is_idle_domain(d) ) >> - return -EINVAL; >> - >> - d->arch.s3_integrity = domcr_flags & XEN_DOMCTL_CDF_s3_integrity; >> - >> INIT_LIST_HEAD(&d->arch.pdev_list); >> >> d->arch.relmem = RELMEM_not_started; >> INIT_PAGE_LIST_HEAD(&d->arch.relmem_list); >> >> - if ( d->domain_id && !is_idle_domain(d) && >> - cpu_has_amd_erratum(&boot_cpu_data, AMD_ERRATUM_121) ) >> + spin_lock_init(&d->arch.e820_lock); >> + spin_lock_init(&d->arch.vtsc_lock); >> + >> + /* Minimal initialisation for the idle domain. */ >> + if ( unlikely(is_idle_domain(d)) ) >> + { >> + static const struct arch_csw idle_csw = { >> + .from = paravirt_ctxt_switch_from, >> + .to = paravirt_ctxt_switch_to, >> + .tail = continue_idle_domain, >> + }; >> + >> + d->arch.ctxt_switch = &idle_csw; >> + >> + d->arch.cpuid = ZERO_BLOCK_PTR; /* Catch stray misuses. */ >> + d->arch.msr = ZERO_BLOCK_PTR; >> + >> + return 0; >> + } >> + else if ( !config ) > May I suggest to avoid the "else" here? I've gone with ... return 0; } if ( !config ) { /* Only IDLE is allowed with no config. */ ASSERT_UNREACHABLE(); return -EINVAL; } ... For runtime safety and debug sanity. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |