[PATCH] ipmi: fix event queue limit
authorCorey Minyard <minyard@acm.org>
Tue, 11 Apr 2006 05:54:31 +0000 (22:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 11 Apr 2006 13:18:45 +0000 (06:18 -0700)
The event handler mechanism in the IPMI driver had a limit on the number of
received events, but the counts were not being updated.  Update the counts
to impose a limit.  This is not a critical fix, as this function (the
sending of the events) has to be turned on by the user, anyway.  This
avoids problems if they forget to turn it back off.

Signed-off-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/ipmi/ipmi_msghandler.c

index 0ded046d5aa80011e5e267a0d1b8ca72fec69475..9f2f8fdec69a4b642003efd929aa4faea1fb293f 100644 (file)
@@ -941,6 +941,7 @@ int ipmi_set_gets_events(ipmi_user_t user, int val)
                        list_del(&msg->link);
                        list_add_tail(&msg->link, &msgs);
                }
+               intf->waiting_events_count = 0;
        }
 
        /* Hold the events lock while doing this to preserve order. */
@@ -2916,6 +2917,7 @@ static int handle_read_event_rsp(ipmi_smi_t          intf,
 
                copy_event_into_recv_msg(recv_msg, msg);
                list_add_tail(&(recv_msg->link), &(intf->waiting_events));
+               intf->waiting_events_count++;
        } else {
                /* There's too many things in the queue, discard this
                   message. */