Fixes (unused) bug in get_event_type()
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 9 May 2011 20:54:10 +0000 (13:54 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:36:02 +0000 (17:36 -0700)
No one really uses this function (msr_dumb_while and eth_audio), but
neither of those really know what they are doing / do the right thing.
I don't recomment using get_event_type() anyway, but we'll keep it
around in case we need the helper in the future.

user/parlib/event.c

index 9f8a06b..a878bb2 100644 (file)
@@ -137,7 +137,8 @@ unsigned int event_clear_overflows(struct event_queue *ev_q)
 unsigned int get_event_type(struct event_mbox *ev_mbox)
 {
        struct event_msg local_msg = {0};
-       if (bcq_dequeue(&ev_mbox->ev_msgs, &local_msg, NR_BCQ_EVENTS)) {
+       /* BCQ returns 0 on success, so this will dequeue and return the type. */
+       if (!bcq_dequeue(&ev_mbox->ev_msgs, &local_msg, NR_BCQ_EVENTS)) {
                return local_msg.ev_type;
        }
        if (BITMASK_IS_CLEAR(&ev_mbox->ev_bitmap, MAX_NR_EVENT))