linux/drivers/net/wireless/ti/wl18xx
Eliad Peller af390f4dd3 wlcore: protect wlcore_op_set_key with mutex
wlcore_op_set_key() calls wl18xx_set_key(),
which in turn executes some of his function
calls without acquiring wl->mutex and making
sure the fw is awake.

Adding mutex_lock()/ps_elp_wakeup() calls is
not enough, as wl18xx_set_key() calls
wl1271_tx_flush() which can't be called while
the mutex is taken.

Add the required calls to wlcore_op_set_key,
but limit the queues_stop and flushing
to the only encryption types in which
a spare block might be needed (GEM and TKIP).

[Arik - move state != ON check]

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <luca@coelho.fi>
2012-09-27 12:13:54 +03:00
..
Kconfig wl18xx: add dependency on mac80211 2012-06-05 17:16:09 +03:00
Makefile wl18xx: implement fw status debugfs entries 2012-06-05 15:58:16 +03:00
acx.c wl18xx: add support to clear FW statistics 2012-06-08 09:14:07 +03:00
acx.h wl18xx: deprecate PG1 support 2012-06-26 20:20:17 +03:00
conf.h wl18xx: add support for ht_mode in conf.h 2012-07-18 15:08:21 +03:00
debugfs.c wlcore: Prevent interaction with HW after recovery is queued 2012-09-27 12:13:50 +03:00
debugfs.h wl18xx: implement fw status debugfs entries 2012-06-05 15:58:16 +03:00
io.c wl18xx: fix bogus compile warning on cc config option 2012-07-18 15:08:21 +03:00
io.h wlcore: Force checking of io functions' return values 2012-06-22 10:49:45 +03:00
main.c wlcore: protect wlcore_op_set_key with mutex 2012-09-27 12:13:54 +03:00
reg.h wl18xx: align wl18xx_conf_phy with FW variant and remove it 2012-06-08 09:42:09 +03:00
tx.c wlcore/wl12xx/wl18xx: introduce quirk to remove TKIP header space 2012-06-06 19:28:04 +03:00
tx.h wl18xx: pad only last frame in aggregration buffer for PG2 2012-06-07 18:11:06 +03:00
wl18xx.h wlcore/wl18xx/wl12xx: allow up to 3 mac addresses 2012-09-27 12:13:52 +03:00