[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] evtchn: factor out freeing an event channel
commit a622b5ade2bdf79ad95e6088a4041e75253c43f3 Author: David Vrabel <david.vrabel@xxxxxxxxxx> AuthorDate: Tue Jun 16 12:30:16 2015 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Jun 16 12:30:16 2015 +0200 evtchn: factor out freeing an event channel We're going to want to free an event channel from two places. Factor out the code into a free_evtchn() function. Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> --- xen/common/event_channel.c | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index bf9b2f8..947880f 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -192,6 +192,17 @@ static int get_free_port(struct domain *d) return port; } +static void free_evtchn(struct domain *d, struct evtchn *chn) +{ + /* Clear pending event to avoid unexpected behavior on re-bind. */ + evtchn_port_clear_pending(d, chn); + + /* Reset binding to vcpu0 when the channel is freed. */ + chn->state = ECS_FREE; + chn->notify_vcpu_id = 0; + + xsm_evtchn_close_post(chn); +} static long evtchn_alloc_unbound(evtchn_alloc_unbound_t *alloc) { @@ -569,14 +580,7 @@ static long __evtchn_close(struct domain *d1, int port1) BUG(); } - /* Clear pending event to avoid unexpected behavior on re-bind. */ - evtchn_port_clear_pending(d1, chn1); - - /* Reset binding to vcpu0 when the channel is freed. */ - chn1->state = ECS_FREE; - chn1->notify_vcpu_id = 0; - - xsm_evtchn_close_post(chn1); + free_evtchn(d1, chn1); out: if ( d2 != NULL ) -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |