diff options
Diffstat (limited to 'extras/mini-os/events.c')
-rw-r--r-- | extras/mini-os/events.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/extras/mini-os/events.c b/extras/mini-os/events.c index 9201128636..3c4b998810 100644 --- a/extras/mini-os/events.c +++ b/extras/mini-os/events.c @@ -22,6 +22,7 @@ #include <events.h> #include <lib.h> + static ev_action_t ev_actions[NR_EVS]; void default_handler(int port, struct pt_regs *regs); @@ -58,7 +59,7 @@ int do_event(u32 port, struct pt_regs *regs) int bind_evtchn( u32 port, void (*handler)(int, struct pt_regs *) ) { - if(ev_actions[port].handler) + if(ev_actions[port].handler != default_handler) printk("WARN: Handler for port %d already registered, replacing\n", port); @@ -73,7 +74,7 @@ int bind_evtchn( u32 port, void (*handler)(int, struct pt_regs *) ) void unbind_evtchn( u32 port ) { - if (!ev_actions[port].handler) + if (ev_actions[port].handler) printk("WARN: No handler for port %d when unbinding\n", port); ev_actions[port].handler = NULL; ev_actions[port].status |= EVS_DISABLED; |