[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V3 02/22] Dynamically allocate d->evtchn
>>> On 27.02.13 at 15:33, Wei Liu <wei.liu2@xxxxxxxxxx> wrote: > --- a/xen/common/event_channel.c > +++ b/xen/common/event_channel.c > @@ -1172,15 +1172,26 @@ void notify_via_xen_event_channel(struct domain *ld, > int lport) > > int evtchn_init(struct domain *d) > { > + BUILD_BUG_ON(sizeof(struct evtchn *) * NR_EVTCHN_BUCKETS > PAGE_SIZE); > + d->evtchn = alloc_xenheap_page(); You may not have monitored other changes that were done meanwhile. With fb034f42648ecac835a1666def468f673edd2725, please use xmalloc_array() here (but keep the BUILD_BUG_ON()). > + > + if ( d->evtchn == NULL ) > + return -ENOMEM; > + clear_page(d->evtchn); > + > spin_lock_init(&d->event_lock); > - if ( get_free_port(d) != 0 ) > + if ( get_free_port(d) != 0 ) { The opening brace belongs on its own line. > + free_xenheap_page(d->evtchn); > return -EINVAL; > + } > evtchn_from_port(d, 0)->state = ECS_RESERVED; > > #if MAX_VIRT_CPUS > BITS_PER_LONG > d->poll_mask = xmalloc_array(unsigned long, > BITS_TO_LONGS(MAX_VIRT_CPUS)); > - if ( !d->poll_mask ) > + if ( !d->poll_mask ) { And here again. Please also check your other patches whether there are further instances of this. Jan > + free_xenheap_page(d->evtchn); > return -ENOMEM; > + } > bitmap_zero(d->poll_mask, MAX_VIRT_CPUS); > #endif > > @@ -1214,6 +1225,8 @@ void evtchn_destroy(struct domain *d) > spin_unlock(&d->event_lock); > > clear_global_virq_handlers(d); > + > + free_xenheap_page(d->evtchn); > } > > > diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h > index f6846d4..812bd87 100644 > --- a/xen/include/xen/sched.h > +++ b/xen/include/xen/sched.h > @@ -260,7 +260,7 @@ struct domain > spinlock_t rangesets_lock; > > /* Event channel information. */ > - struct evtchn *evtchn[NR_EVTCHN_BUCKETS]; > + struct evtchn **evtchn; > spinlock_t event_lock; > > struct grant_table *grant_table; > -- > 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |