Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: wpi0 going offline frequently
On Mon, Feb 18, 2008 at 06:36:56AM +0000, Steven M. Bellovin wrote:
> On a Thinkpad T61 running amd64-current (right now, 4.99.53, but this
> has been going on for a while), wpi0 will frequently go offline after a
>
> wpi0: fatal firmware error
>
> message. This almost always happens when I start X, perhaps because
> of interrupts being masked. It happened just now in this sequence:
It looks to me like you can recover by calling wpi_stop(, 0) and
wpi_init(), since wpi_init() reloads and restarts the firmware. However,
wpi_init() cannot be called from interrupt context. I suppose wpi needs
some kernel thread to wake and call wpi_init(). That thread needs to
be synchronized with other threads that may call _stop() or _init(),
and it needs to be synchronized with interrupts.
BTW, wpi misuses the IFF_UP flag in wpi_intr() and elsewhere. By
convention, the operator "owns" the IFF_UP bit. wpi should read/write
IFF_RUNNING instead of IFF_UP in a few of the places where it modifies
IFF_UP, now.
Dave
--
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933 ext 24
Home |
Main Index |
Thread Index |
Old Index