The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] IPMI: Clean up the waiting message queue properly on unload
@ 2006-11-08 21:31 Corey Minyard
  0 siblings, 0 replies; only message in thread
From: Corey Minyard @ 2006-11-08 21:31 UTC (permalink / raw)
  To: Linux Kernel, Andrew Morton; +Cc: Patrick Schoeller

A wrong function was being used to free a list; this fixes
the problem.  Otherwise, an oops at unload time was possible.
But not likely, since you can't have any users when you unload
the modules and it is very hard to get messages into this
queue without users.

Signed-off-by: Corey Minyard <minyard@acm.org>
Cc: Patrick Schoeller <Patrick.Schoeller@hp.com>

Index: linux-2.6.18/drivers/char/ipmi/ipmi_msghandler.c
===================================================================
--- linux-2.6.18.orig/drivers/char/ipmi/ipmi_msghandler.c
+++ linux-2.6.18/drivers/char/ipmi/ipmi_msghandler.c
@@ -387,13 +387,23 @@ static void free_recv_msg_list(struct li
 	}
 }
 
+static void free_smi_msg_list(struct list_head *q)
+{
+	struct ipmi_smi_msg *msg, *msg2;
+
+	list_for_each_entry_safe(msg, msg2, q, link) {
+		list_del(&msg->link);
+		ipmi_free_smi_msg(msg);
+	}
+}
+
 static void clean_up_interface_data(ipmi_smi_t intf)
 {
 	int              i;
 	struct cmd_rcvr  *rcvr, *rcvr2;
 	struct list_head list;
 
-	free_recv_msg_list(&intf->waiting_msgs);
+	free_smi_msg_list(&intf->waiting_msgs);
 	free_recv_msg_list(&intf->waiting_events);
 
 	/* Wholesale remove all the entries from the list in the

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-11-08 22:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-08 21:31 [PATCH] IPMI: Clean up the waiting message queue properly on unload Corey Minyard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox