2.4.18: aic7xxx soft reboot broken

Matthew Derer (matthew@alumni.caltech.edu)
Sun, 12 May 2002 22:50:01 -0700


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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/