From keithmo@exmsft.com Thu Jun 2 03:55:49 2005 Message-ID: <429EE29D.8030805@exmsft.com> Date: Thu, 02 Jun 2005 12:42:37 +0200 From: Keith Moore To: Greg KH Subject: cpqphp: fix oops during unload without probe drivers/pci/hotplug/cpqphp_core.c calls cpqphp_event_start_thread() in one_time_init(), which is called whenever the hardware is probed. Unfortunately, cpqphp_event_stop_thread() is *always* called when the module is unloaded. If the hardware is never probed, then cpqphp_event_stop_thread() tries to manipulate a couple of uninitialized mutexes. Signed-off-by: Keith Moore Signed-off-by: Greg Kroah-Hartman --- drivers/pci/hotplug/cpqphp_core.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) --- gregkh-2.6.orig/drivers/pci/hotplug/cpqphp_core.c 2005-06-06 12:08:52.000000000 -0700 +++ gregkh-2.6/drivers/pci/hotplug/cpqphp_core.c 2005-06-09 21:42:12.000000000 -0700 @@ -60,6 +60,7 @@ static void __iomem *cpqhp_rom_start; static int power_mode; static int debug; +static int initialized; #define DRIVER_VERSION "0.9.8" #define DRIVER_AUTHOR "Dan Zink , Greg Kroah-Hartman " @@ -1271,7 +1272,6 @@ { int loop; int retval = 0; - static int initialized = 0; if (initialized) return 0; @@ -1441,7 +1441,8 @@ } // Stop the notification mechanism - cpqhp_event_stop_thread(); + if (initialized) + cpqhp_event_stop_thread(); //unmap the rom address if (cpqhp_rom_start)