On Fri, 2009-03-13 at 11:48 +0100, Johannes Berg wrote: > On Fri, 2009-03-13 at 11:44 +0100, Johannes Berg wrote: > > When mac80211 resumes, it currently doesn't reconfigure the interfaces > > entirely and also doesn't reconfigure BSS information -- fix this. > > > > Also, to be able to test this, add a debugfs file that just calls > > the suspend/resume code to see what happens when we go through that, > > without needing the time-consuming suspend/resume cycle. > > > > Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > > --- > > v2: rebased on top of "stop queues across suspend/resume" > > > > zd1211rw currently doesn't survive this properly, I'm not sure why, > > but it keeps saying > > zd1211rw 1-1:1.0: error ioread32(CR_REG1): -11 > > > > Please test with other hardware, we need to figure out whether or > > not something is missing in mac80211. > > ath9k survives ping -f without even blinking. Actually, not quite: [ 289.753866] [ 289.753869] ================================= [ 289.754164] [ INFO: inconsistent lock state ] [ 289.754372] 2.6.29-rc7-wl-17155-g2f7ab92-dirty #29 [ 289.754598] --------------------------------- [ 289.754805] inconsistent {in-softirq-W} -> {softirq-on-W} usage. [ 289.755090] bash/5240 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 289.755324] (&txq->axq_lock){-+..}, at: [<d0000000023de2e8>] .ath_tx_node_cleanup+0xa4/0x1cc [ath9k] [ 289.755828] {in-softirq-W} state was registered at: [ 289.756058] [<c00000000008b3c8>] .__lock_acquire+0x6e4/0x908 [ 289.756350] [<c00000000008b690>] .lock_acquire+0xa4/0xec [ 289.756621] [<c00000000042b980>] ._spin_lock_bh+0x58/0xb8 [ 289.756898] [<d0000000023e0938>] .ath_tx_processq+0x9c/0x564 [ath9k] [ 289.757243] [<d0000000023e0e78>] .ath_tx_tasklet+0x78/0xa0 [ath9k] [ 289.757579] [<d0000000023db574>] .ath9k_tasklet+0x8c/0xbc [ath9k] [ 289.757910] [<c00000000005ca18>] .tasklet_action+0x150/0x248 [ 289.758200] [<c00000000005da60>] .__do_softirq+0xf4/0x218 [ 289.758477] [<c00000000000c4c8>] .do_softirq+0x5c/0xb8 [ 289.758741] [<c00000000005d850>] .local_bh_enable+0xd4/0x128 [ 289.759030] [<c000000000397ae4>] .dev_queue_xmit+0x428/0x47c [ 289.759320] [<d0000000022e0620>] .ieee80211_tx_skb+0x5c/0x70 [mac80211] [ 289.759700] [<d0000000022c772c>] .ieee80211_scan_work+0x158/0x1c0 [mac80211] [ 289.760081] [<c00000000006dd50>] .run_workqueue+0x16c/0x298 [ 289.771199] [<c00000000006dfa4>] .worker_thread+0x128/0x154 [ 289.782275] [<c00000000007365c>] .kthread+0x78/0xc4 [ 289.793327] [<c000000000022908>] .kernel_thread+0x54/0x70 [ 289.804332] irq event stamp: 96461 [ 289.815187] hardirqs last enabled at (96461): [<c000000000428908>] .__mutex_unlock_slowpath+0x1cc/0x218 [ 289.826501] hardirqs last disabled at (96460): [<c0000000004287bc>] .__mutex_unlock_slowpath+0x80/0x218 [ 289.837782] softirqs last enabled at (96424): [<c00000000000c4c8>] .do_softirq+0x5c/0xb8 [ 289.849079] softirqs last disabled at (96413): [<c00000000000c4c8>] .do_softirq+0x5c/0xb8 [ 289.860229] [ 289.860230] other info that might help us debug this: [ 289.882122] 1 lock held by bash/5240: [ 289.893117] #0: (rtnl_mutex){--..}, at: [<c0000000003a46ac>] .rtnl_lock+0x20/0x38 [ 289.904375] [ 289.904376] stack backtrace: [ 289.926731] Call Trace: [ 289.937918] [c00000020484b490] [c00000000000fef8] .show_stack+0x6c/0x174 (unreliable) [ 289.949404] [c00000020484b540] [c000000000087918] .print_usage_bug+0x1d8/0x210 [ 289.960846] [c00000020484b600] [c000000000088458] .mark_lock_irq+0x5d0/0x83c [ 289.972185] [c00000020484b690] [c000000000088998] .mark_lock+0x2d4/0x474 [ 289.983384] [c00000020484b730] [c000000000088c60] .mark_irqflags+0x128/0x160 [ 289.994515] [c00000020484b7c0] [c00000000008b3c8] .__lock_acquire+0x6e4/0x908 [ 290.005626] [c00000020484b8c0] [c00000000008b690] .lock_acquire+0xa4/0xec [ 290.016727] [c00000020484b980] [c00000000042b8c8] ._spin_lock+0x50/0xb0 [ 290.027837] [c00000020484ba10] [d0000000023de2e8] .ath_tx_node_cleanup+0xa4/0x1cc [ath9k] [ 290.038983] [c00000020484bb00] [d0000000023d90b0] .ath9k_sta_notify+0xf8/0x118 [ath9k] [ 290.050108] [c00000020484bb90] [d0000000022ecc44] .__ieee80211_suspend+0xb0/0x1e0 [mac80211] [ 290.061261] [c00000020484bc50] [d0000000022e3914] .reset_write+0x2c/0x60 [mac80211] [ 290.072397] [c00000020484bce0] [c00000000010b7c0] .vfs_write+0xd0/0x1bc [ 290.083465] [c00000020484bd80] [c00000000010b9b4] .SyS_write+0x58/0xa0 [ 290.094494] [c00000020484be30] [c000000000007554] syscall_exit+0x0/0x40 Looks like we need to disable BHs for the sta functions or something? johannes
Attachment:
signature.asc
Description: This is a digitally signed message part