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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, September 15, 2000 12:49 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to