On Tue, Aug 29, 2017 at 9:59 AM, Wei Liu <wei.l...@citrix.com> wrote: > On Tue, Aug 29, 2017 at 05:17:05PM +0300, Alexandru Isaila wrote: > [...] >> >> /** >> diff --git a/xen/common/domain.c b/xen/common/domain.c >> index b22aacc..30f507b 100644 >> --- a/xen/common/domain.c >> +++ b/xen/common/domain.c >> @@ -363,9 +363,6 @@ struct domain *domain_create(domid_t domid, unsigned int >> domcr_flags, >> poolid = 0; >> >> err = -ENOMEM; >> - d->vm_event = xzalloc(struct vm_event_per_domain); >> - if ( !d->vm_event ) >> - goto fail; >> >> d->pbuf = xzalloc_array(char, DOMAIN_PBUF_SIZE); >> if ( !d->pbuf ) >> @@ -403,7 +400,6 @@ struct domain *domain_create(domid_t domid, unsigned int >> domcr_flags, >> if ( hardware_domain == d ) >> hardware_domain = old_hwdom; >> atomic_set(&d->refcnt, DOMAIN_DESTROYED); >> - xfree(d->vm_event); >> xfree(d->pbuf); >> if ( init_status & INIT_arch ) >> arch_domain_destroy(d); >> @@ -820,7 +816,14 @@ static void complete_domain_destroy(struct rcu_head >> *head) >> free_xenoprof_pages(d); >> #endif >> >> - xfree(d->vm_event); >> +#ifdef CONFIG_HAS_MEM_PAGING >> + xfree(d->vm_event_paging); >> +#endif >> + xfree(d->vm_event_monitor); > > Why do you unconditionally xfree these vm_event_monitor while you don't > unconditionally allocate them? > > Not that this is strictly a bug but this deviates from the original > behaviour.
Isn't xfree NULL safe? _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel