Subject: wd.c lost interrupt things...
To: None <>
From: Alistair G. Crooks <>
List: current-users
Date: 02/24/1994 06:57:43
I've just been hit by the wd.c "lost interrupt" bug, after which it
tries to reset ad infinitum.  The funny thing is that the bug isn't
triggered until I physically insert a floppy into the floppy drive, at
which point I get the error message from wd.  This happens with
kernels built from the 12 Feb tar_files, and 19 Feb tar_files.  The
only change I've made to the machine is the fitting of an Adaptec
1542CF - but there are no peripherals attached to it, and the Adaptec
floppy is disabled, although the BIOS isn't (and I've just tried
disabling the Adaptec BIOS, and that doesn't help at all).

Now, a small investigation shows that the "lost interrupt" message
	"wd0: lost interrupt - status d0 error d0"
gets printed in wdtimeout() - line 1760 of wd.c.  This then goes on to
do various inb's and outb's, and then call wdstart.  (This is all at
splbio, by the way). After wdstart returns, wdtimeout then
reschedules itself. I don't think my box ever gets out of that loop
- wdstart calls wdreset (at lines 542 and 581), and I get a load of
	"wdc0: busy too long, resetting"
messages which never end. At this point, a cold boot is necessary -
if I try a warm boot, then the IDE drive isn't found by the BIOS.

This leads me to surmise that whatever the reset command given to
the controller is, it's a mite strong.

Anyone else got any ideas?  I apologise that I haven't got any further
than the above ramblings, but as I have to recycle the machine every
time I do this, it's getting painful, as I don't like that many power


PS. Configuration is 486DX2/66, with Conner CP30344 (340 MB IDE drive),
no-name IDE controller, and afore-mentioned 1542CF.
Alistair G. Crooks (			     +44 252 346377
Amdahl European HQ, Dogmersfield Park, Hartley Wintney, Hants RG27 8TE, UK.