notify_via_xen_event_channel() should check for dying domain.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 15 Sep 2010 07:18:53 +0000 (08:18 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 15 Sep 2010 07:18:53 +0000 (08:18 +0100)
Else we can fail on either ASSERTion in that function.

From: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/common/event_channel.c

index c6241d05984009e40781040feb6f81d79c3e41ec..f4a2c24d7a8f8fddc9b981c01e9906d6cf743640 100644 (file)
@@ -1030,6 +1030,12 @@ void notify_via_xen_event_channel(struct domain *ld, int lport)
 
     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);