[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] minios: clear the event before calling the handler since (especially



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1210244019 -3600
# Node ID addfc2db07a3bfaf4b117c3fc6a34a7eb7dc6ab8
# Parent  72e70f9041c2c5c4f3d3591f252bcf6dcda7da63
minios: clear the event before calling the handler since (especially
in the SMP case) the handler may make another domain send an event
again, and that must not be lost.

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxxx>
---
 extras/mini-os/events.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff -r 72e70f9041c2 -r addfc2db07a3 extras/mini-os/events.c
--- a/extras/mini-os/events.c   Thu May 08 11:27:22 2008 +0100
+++ b/extras/mini-os/events.c   Thu May 08 11:53:39 2008 +0100
@@ -58,9 +58,12 @@ int do_event(evtchn_port_t port, struct 
 int do_event(evtchn_port_t port, struct pt_regs *regs)
 {
     ev_action_t  *action;
+
+    clear_evtchn(port);
+
     if (port >= NR_EVS) {
         printk("Port number too large: %d\n", port);
-               goto out;
+        return 1;
     }
 
     action = &ev_actions[port];
@@ -68,9 +71,6 @@ int do_event(evtchn_port_t port, struct 
 
     /* call the handler */
        action->handler(port, regs, action->data);
-
- out:
-       clear_evtchn(port);
 
     return 1;
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.