This is due to a bug in kernel/sys.c in the function
notifier_chain_unregister().
where the 'notifier_lock' can't be acquired while reboot is running.
I suspect any other drivers that call this function on shutdown from
unregister_reboot_notifier() (in the case where the root filesystem is
mounted
through the driver will also have this problem), i.e. DAC960.c (Mylex) and
gdth.c (ICP).
The fix for now is to modify kernel/sys.c, the function
"notifier_chain_unregister",
and remove the write_lock(¬ifier_lock), and write_unlock(¬ifier_lock)
calls
from this function and recompile your kernel.
-- Adam Radford Software Engineer 3ware, Inc.-----Original Message----- From: Frank.Koeck@mpi-hd.mpg.de [mailto:Frank.Koeck@mpi-hd.mpg.de] Sent: Friday, September 15, 2000 12:49 AM To: andre@suse.com; linux@3ware.com Subject: Bug in 3w-xxxx.c
Hi,
i have discovered a problem with a 3ware 5400 controller inside my SMP system (Dual PIII800, kernel 2.4.0-test7, 3w-xxxx.c version 1.02.00.002).
Problem: System will not reboot or halt. Last message on console comes form within 3w-xxxx.c.
Solution: remove call to function unregister_reboot_notifier() in function tw_halt() solves the problem.
Regards, Frank Koeck --- Frank Koeck Max-Planck-Institut fuer Kernphysik, Saupfercheckweg 1, D-69117 Heidelberg Phone: +49-6221-516-518 Fax: +49-6221-516-602 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:25 EST