All of lore.kernel.org
 help / color / mirror / Atom feed
* 2.4.18: aic7xxx soft reboot broken
@ 2002-05-13  5:50 Matthew Derer
  0 siblings, 0 replies; only message in thread
From: Matthew Derer @ 2002-05-13  5:50 UTC (permalink / raw)
  To: Linux Kernel Mailing List

I recently upgraded to a 2.4.18 kernel on a machine with an Adaptec 
2940AU SCSI controller.  Since the upgrade, soft reboots don't work; the 
machine appears to shut down normally, but during the subsequent boot 
the SCSI BIOS reports a timeout on an inquiry command and is unable to 
find any drives on the bus.  A hard power cycle is required to restore 
the card to a state in which it can find the drives.

Problem seems to be that the reboot notifier for the new aic7xxx driver 
is registered in aic7xxx_setup, which only gets called when there are 
module or kernel command-line params for aic7xxx.  Without reboot 
notification and cleanup, the card is left in a bad state at shutdown, 
and BIOS does not appear to clean it up during boot.

I think other people have run into the same problem:

http://groups.google.com/groups?selm=20010811.180158.1012502954.2309%40omit.nonsense.bigfoot.com

Workaround is obvious, just feed the module any param to get the 
notification registered, like aic7xxx=verbose, then soft reboots work 
just fine.  Fix would be to register the notifier whether there are 
params or not.  Also wouldn't hurt to check for SYS_POWER_OFF as well as 
SYS_HALT and SYS_DOWN when handling the notify, SYS_POWER_OFF can result 
in a halt without actually powering off on some machines.

Matthew


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

only message in thread, other threads:[~2002-05-13  5:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-13  5:50 2.4.18: aic7xxx soft reboot broken Matthew Derer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.