[rt2x00-users] rt73usb cause system to crash after resuming from suspend

Johannes Stezenbach js at sig21.net
Thu Feb 3 09:42:34 EST 2011


On Wed, Feb 02, 2011 at 02:55:53PM -0200, Leonardo Luiz Padovani da Mata wrote:
> 
> After that, the system still crashes on resuming from suspend, but
> now, when i try to rmmod the rt73usb, the kernel output this dump:

the dump shows tasks waiting for rtnl_lock

> [  360.312474]  [<c1045441>] flush_workqueue+0xfb/0x24f
> [  360.312485]  [<c13ce964>] ? skb_queue_purge+0xd/0x1b
> [  360.312497]  [<c14ac112>] ieee80211_stop_device+0x23/0x65
> [  360.312509]  [<c14a1528>] ieee80211_do_stop+0x352/0x3e9
> [  360.312519]  [<c14d8a28>] ? _raw_spin_unlock_bh+0x17/0x19
> [  360.312530]  [<c13e6548>] ? dev_deactivate+0x139/0x15a
> [  360.312542]  [<c14a15d1>] ieee80211_stop+0x12/0x16
> [  360.312552]  [<c13d66f3>] __dev_close+0x66/0x76
> [  360.312563]  [<c13d6717>] dev_close+0x14/0x36
> [  360.312574]  [<c1480ff6>] cfg80211_rfkill_set_block+0x2e/0x55
> [  360.312585]  [<c1481036>] cfg80211_rfkill_sync_work+0x19/0x1c

cfg80211_rfkill_set_block() holds the rtnl_lock

Which explains why I don't see the issue because I have
rfkill disabled in my embedded board kernel config.

cfg80211_rfkill_set_block() then waits for flush_workqueue()
on the mac80211 workqueue 

> [  360.313551]  [<c1045185>] cancel_work_sync+0xa/0xc
> [  360.313568]  [<f88757de>] rt2x00lib_remove_dev+0x29/0xcc [rt2x00lib]
> [  360.313581]  [<f896e08b>] rt2x00usb_disconnect+0x25/0x88 [rt2x00usb]

and this maybe too

Does someone know which of the kworker threads is servicing
the mac80211 workqueue?  It might be that this is an rfkill
issue and not rooted in rt2x00 code.  Or maybe it is due to
rt2x00's use of workqueues?


Johannes



More information about the users mailing list