From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: [PATCH 15/18] xenpaging: handle dying guest in notify_via_xen_event_channel Date: Fri, 15 Oct 2010 16:12:17 +0200 Message-ID: <20101015141207.510773829@aepfle.de> References: <20101015141202.309585877@aepfle.de> Return-path: Content-Disposition: inline; filename=xenpaging.notify_via_xen_event_channel.patch List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Avoid crash of Xen if a xenpaging enabled guest crashes and there are still memevents in flight, as reported here: http://lists.xensource.com/archives/html/xen-devel/2010-08/msg00516.html Signed-off-by: Olaf Hering Already-Acked-by: Patrick Colp Already-Acked-by: Keir Fraser --- xen/common/event_channel.c | 6 ++++++ 1 file changed, 6 insertions(+) --- xen-4.0.1-testing.orig/xen/common/event_channel.c +++ xen-4.0.1-testing/xen/common/event_channel.c @@ -994,6 +994,12 @@ void notify_via_xen_event_channel(struct spin_lock(&ld->event_lock); + if ( unlikely(ld->is_dying) ) + { + spin_unlock(&ld->event_lock); + return; + } + ASSERT(port_is_valid(ld, lport)); lchn = evtchn_from_port(ld, lport); ASSERT(lchn->consumer_is_xen);