[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] x86/mm: Make sure the event channel is released accurately
# HG changeset patch # User Kaixing Hong <hongkaixing@xxxxxxxxxx> # Date 1329462865 -28800 # Node ID b5ac7d99d93f061977467c0a383b993b3e5e6507 # Parent b75664e5390583c5d2075c82a14245bc941b3aaf x86/mm: Make sure the event channel is released accurately In xenpaging source code,there is an interdomain communication between dom0 and domU. In mem_event_enable(),the function alloc_unbound_xen_event_channel() allocates a free port for domU, and then it will be bound with dom0. When xenpaging tears down,it just frees dom0's event channel port by xc_evtchn_unbind(), leaves domU's port still occupied. So we add the patch to free domU's port when xenpaging exits. We need double free interdomain eventchannel. First free domainU port, and leave domain 0 port unbond, Then free domain 0 port. Signed-off-by: Kaixing Hong <hongkaixing@xxxxxxxxxx>, Signed-off-by: Zhen Shi <bicky.shi@xxxxxxxxxx> Acked-by: Olaf Hering <olaf@xxxxxxxxx> Committed-by: Tim Deegan <tim@xxxxxxx> --- diff -r b75664e53905 -r b5ac7d99d93f xen/arch/x86/mm/mem_event.c --- a/xen/arch/x86/mm/mem_event.c Thu Feb 16 15:43:02 2012 +0000 +++ b/xen/arch/x86/mm/mem_event.c Fri Feb 17 15:14:25 2012 +0800 @@ -243,6 +243,9 @@ return -EBUSY; } + /* Free domU's event channel and leave the other one unbound */ + free_xen_event_channel(d->vcpu[0], med->xen_port); + unmap_domain_page(med->ring_page); med->ring_page = NULL; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |