|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
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
 |   
 
 | 
    | 
  
  
    |   | 
    |