Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wpi0 going offline frequently



On Mon, 18 Feb 2008 11:43:19 -0600
David Young <dyoung%pobox.com@localhost> wrote:

> 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.

Gotcha.
> 
> 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.
> 
It seems to turn off both flags.


                --Steve Bellovin, http://www.cs.columbia.edu/~smb


Home | Main Index | Thread Index | Old Index