RE: Bug in 3w-xxxx.c (Notifiers STILL broken)

From: Adam Radford (aradford@3WARE.com)
Date: Fri Sep 15 2000 - 11:34:39 EST


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(&notifier_lock), and write_unlock(&notifier_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