|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: how to prevent crashes in notify_via_xen_event_channel d
On Tue, Sep 07, Olaf Hering wrote:
>
> Hello,
>
> I'm seeing crashes with 4.0.1 in notify_via_xen_event_channel() after
> evtchn_destroy() was already executed, the ASSERT triggers.
> There are a few calls to notify_via_xen_event_channel(), only
> hvm_send_assist_req() seems to check the domain->is_shutting_down flag.
> xen-unstable is not much different in that area.
>
> How should a check for an already destroyed eventchannel look like?
> Maybe like its done in free_xen_event_channel()?
This patch fixes the crashes for me.
--- 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);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|