Subject: Re: Stuff for 1.4...
To: Mason Loring Bliss <firstname.lastname@example.org>
From: Manuel Bouyer <email@example.com>
Date: 04/12/1999 01:39:21
[Summary: on a system with a 3c509B and pciide, at reboot, after the
'syncing disks' message, we get 'ep1: adapter failure (ffff)' and the system
hang. This doesn't happen if we use wdc instead of pciide. Mason reported this
first on 1.4_alpla, I've been able to reproduce it on a 1.3.3 system + pciide
Wee, I got it on my system too. Unfortunably I can't do much hacking on
it, it's our router (rigth now it possible because there's nobody else here,
but I guess I'm going to sleep soon :).
I tried a few thing: 'ifconfig ep1 down', changing the irq of the board from
7 to 5, without luck.
This message is from epintr(), and I really don't know why it's getting
such a bogus interrupt at this stage.
I wonder if this can't happen when we run the shutdown hook
epshutdown() (in elink3.c). It resets the board. At this point, if it
gets an irq I guess registers will not be available. I wonder if it should
run this a splhigh(), or call epdisable() between epstop() and
ep_complete_cmd() in epshutdown().
Could you try a few things here ? printf's in epshutdown() to track what he's
doing, add a 'int s = splhigth()' at the begining of epshutdown() and 'splx(s)'
at the end, and call 'epdisable(sc)' between epstop() and ep_complete_cmd().
Now it's time to go to bed :)
Manuel Bouyer, LIP6, Universite Paris VI. Manuel.Bouyer@lip6.fr