OpenCloudOS-Kernel/drivers/net/wireless/ti
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
..
wl12xx wlcore: Refactor probe 2012-09-27 12:13:54 +03:00
wl18xx wlcore: protect wlcore_op_set_key with mutex 2012-09-27 12:13:54 +03:00
wl1251 mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
wlcore wlcore: protect wlcore_op_set_key with mutex 2012-09-27 12:13:54 +03:00
Kconfig wl18xx: add new module 2012-06-05 15:54:04 +03:00
Makefile wl18xx: add new module 2012-06-05 15:54:04 +03:00