bug: sleeping function called from invalid context ... libertas/cmd.c

Dan Williams dcbw at redhat.com
Sat Jun 27 08:18:03 EDT 2009


On Tue, 2009-06-23 at 16:24 -0400, Paul Fox wrote:
> dan wrote:
>  > On Fri, 2009-06-19 at 10:55 -0400, Paul Fox wrote:
>  > > hi --
>  > > 
>  > > on the OLPC XO laptop, i'm seeing the following backtrace fairly
>  > > often.  my network management program uses iwconfig a lot, so i
>  > > may see it more than others might.  i'm running 2.6.30 (slightly
>  > > OLPC-modified, but not at this level), so i think the libertas
>  > > driver is pretty current.
>  > > 
>  > > btw, this has been mentioned before on this list:
>  > >     http://lists.infradead.org/pipermail/libertas-dev/2008-May/001532.html
>  > > but i didn't see a resolution -- was there one?  (i haven't yet
>  > > convinced myself of exactly when it occurs for me, so i can't say
>  > > my symptom is identical to that poster's.)
>  > 
>  > This occurs because the GET_LOG command is sent from the get_stats
>  > handler in wext.c, and that grabs some spinlocks and disables
>  > interrupts.  The only way to fix this is to cache the values in the
>  > driver and check them periodically or when data comes in or something
>  > like that, and the reflect the cached values from the get_stats WEXT
>  > handler.  That means cat /proc/net/wireless and such won't always return
>  > current statistics, but its the best we can do for now.
>  > 
>  > Dan
>  > 
> 
> thanks dan.
> 
> might this be helped by commit 87057825824973f29cf2f37cff1e549170b2d7e6 ?
> (daniel drake spotted this and pointed it out to me.)

Yup, that will probably fix this issue without the need for patching
libertas.

Dan

> paul
> 
>     commit 87057825824973f29cf2f37cff1e549170b2d7e6
>     Author: Johannes Berg <johannes at sipsolutions.net>
>     Date:   Tue May 19 17:19:36 2009 +0200
> 
> 	wext: remove atomic requirement for wireless stats
> 	
> 	The requirement for wireless stats to be atomic is now mostly
> 	artificial since we hold the rtnl _and_ the dev_base_lock for
> 	iterating the device list. Doing that is not required, just the
> 	rtnl is sufficient (and the rtnl is required for other reasons
> 	outlined in commit "wext: fix get_wireless_stats locking").
> 	
> 	This will fix http://bugzilla.kernel.org/show_bug.cgi?id=13344
> 	and make things easier for drivers.
> 	
> 	Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
> 	Signed-off-by: John W. Linville <linville at tuxdriver.com>
> 
> 
> =---------------------
>  paul fox, pgf at laptop.org
> 
> _______________________________________________
> libertas-dev mailing list
> libertas-dev at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libertas-dev




More information about the libertas-dev mailing list