[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-next v2 07/10] x86/domain: factor out pv_domain_destroy
On 25/04/17 14:52, Wei Liu wrote: > No functional change. > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> > --- > v2: > 1. reset fields > 2. destroy perdomain mapping You are introducing an additional destroy_perdomain_mapping(), and freeing of the cpuidmasks into this path. Functionally it is fine, but it needs calling out in the commit message as to why it is safe to do. > > Cc: Jan Beulich <jbeulich@xxxxxxxx> > Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > --- > xen/arch/x86/domain.c | 21 +++++++++++++-------- > 1 file changed, 13 insertions(+), 8 deletions(-) > > diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c > index fd5d47ab3d..952e05366a 100644 > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -536,6 +536,16 @@ static bool emulation_flags_ok(const struct domain *d, > uint32_t emflags) > return true; > } > > +static void pv_domain_destroy(struct domain *d) > +{ > + destroy_perdomain_mapping(d, GDT_LDT_VIRT_START, > + GDT_LDT_MBYTES << (20 - PAGE_SHIFT)); Please could we have a newline here... > + xfree(d->arch.pv_domain.cpuidmasks); > + d->arch.pv_domain.cpuidmasks = NULL; And here, just to visually separate the different parts. ~Andrew > + free_xenheap_page(d->arch.pv_domain.gdt_ldt_l1tab); > + d->arch.pv_domain.gdt_ldt_l1tab = NULL; > +} > + > int arch_domain_create(struct domain *d, unsigned int domcr_flags, > struct xen_arch_domainconfig *config) > { > @@ -712,10 +722,8 @@ int arch_domain_create(struct domain *d, unsigned int > domcr_flags, > paging_final_teardown(d); > free_perdomain_mappings(d); > if ( is_pv_domain(d) ) > - { > - xfree(d->arch.pv_domain.cpuidmasks); > - free_xenheap_page(d->arch.pv_domain.gdt_ldt_l1tab); > - } > + pv_domain_destroy(d); > + > return rc; > } > > @@ -735,10 +743,7 @@ void arch_domain_destroy(struct domain *d) > > free_perdomain_mappings(d); > if ( is_pv_domain(d) ) > - { > - free_xenheap_page(d->arch.pv_domain.gdt_ldt_l1tab); > - xfree(d->arch.pv_domain.cpuidmasks); > - } > + pv_domain_destroy(d); > > free_xenheap_page(d->shared_info); > cleanup_domain_irq_mapping(d); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |