Search Linux Wireless

Re: WARNING: at net/mac80211/mlme.c:2292

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

 



On Wed, Aug 19, 2009 at 5:42 PM, Bob Copeland<me@xxxxxxxxxxxxxxx> wrote:
> On Wed, Aug 19, 2009 at 4:47 PM, Fabio Comolli<fabio.comolli@xxxxxxxxx> wrote:
>> Hi all.
>> I see the following warning on an eeePC 900 (AR5001) running
>> 2.6.31-rc6 after a suspend/resume cycle:
>>
>> [  292.377941] ------------[ cut here ]------------
>> [  292.377976] WARNING: at net/mac80211/mlme.c:2292
>> ieee80211_sta_work+0x89/0xc39 [mac80211]()
>
>    if (WARN_ON(local->suspended)) ...

Okay, I think I see what is going on here.

  suspend
    ieee80211_scan_cancel
       ieee80211_notify_scan_completed
          ieee80211_mlme_scan_completed
          ieee80211_ibss_scan_completed
          ieee80211_mesh_scan_completed

All of these completed() notifications queue work.  That's not a problem
because we flush the workqueue shortly thereafter.  However, flushing the
workqueue runs the scheduled work, which can queue _more_ work (sometimes
on a timer with queue_delayed_work), and none of the work functions in
2.6.31 currently check for local->quiesced.

Repeat this process once more and we eventually hit the warning.

Can we just replace the last flush_workqueue() with cancel_delayed_work_sync()
or will that break something?

-- 
Bob Copeland %% www.bobcopeland.com
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux