linux/drivers/net/wireless/ti/wlcore
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
..
acx.c wlcore: reconfigure sleep_auth when removing interfaces 2012-06-21 12:51:55 +03:00
acx.h wlcore: allow setting sleep_auth before interface init 2012-06-21 12:51:41 +03:00
boot.c wlcore: fix a couple small memory leaks 2012-07-10 12:10:15 -04:00
boot.h wlcore: create private static_data area and add operation to parse it 2012-06-05 15:58:20 +03:00
cmd.c wlcore: use dynamic keep-alive template ids 2012-09-27 12:13:53 +03:00
cmd.h wlcore: use dynamic keep-alive template ids 2012-09-27 12:13:53 +03:00
conf.h wlcore: allow only the lowest OFDM rate for p2p setup frames 2012-09-27 12:13:51 +03:00
debug.h wlcore: make debug prints work without dynamic debug 2012-09-27 12:13:52 +03:00
debugfs.c wlcore: Allow memory access when the FW crashes 2012-09-27 12:13:53 +03:00
debugfs.h wlcore: add debugfs macro to help print fw statistics arrays 2012-06-05 15:58:08 +03:00
event.c wlcore: Propagate errors from wl1271_raw_write32 2012-06-22 10:49:44 +03:00
event.h
hw_ops.h wlcore: Propagate errors from wl1271_write 2012-06-22 10:46:34 +03:00
ini.h wlcore/wl12xx: add support for HP and SKW FEM radio manufacturers 2012-06-13 21:52:56 +03:00
init.c wlcore: use dynamic keep-alive template ids 2012-09-27 12:13:53 +03:00
init.h
io.c wlcore: Prevent processing of work items during op_stop 2012-07-10 12:10:14 -04:00
io.h wlcore: Prevent interaction with HW after recovery is queued 2012-09-27 12:13:50 +03:00
Kconfig wlcore: drop INET dependency 2012-06-25 15:14:13 -04:00
main.c wlcore: protect wlcore_op_set_key with mutex 2012-09-27 12:13:54 +03:00
Makefile
ps.c wlcore: decrease elp timeout 2012-09-27 12:13:54 +03:00
ps.h
rx.c wlcore/wl18xx/wl12xx: aggregation buffer size set 2012-09-27 12:13:51 +03:00
rx.h wlcore: check Rx-filter functions in the suspend path 2012-06-23 09:32:32 +03:00
scan.c wlcore: always use wlvif->role_id for scans 2012-09-27 12:13:52 +03:00
scan.h wlcore: set channels 12-14 as pactive for sched scan 2012-06-06 19:40:27 +03:00
sdio.c wl12xx/wlcore: increase FW filename version 2012-07-10 12:10:13 -04:00
spi.c wlcore: spi: use private max-buf-size limit 2012-09-27 12:13:52 +03:00
testmode.c wlcore: Prevent interaction with HW after recovery is queued 2012-09-27 12:13:50 +03:00
testmode.h
tx.c wlcore/wl18xx/wl12xx: aggregation buffer size set 2012-09-27 12:13:51 +03:00
tx.h wlcore: op_tx: pass sta explicitly when inferring frame hlid 2012-07-31 16:11:03 +02:00
wl12xx_80211.h
wl12xx_platform_data.c
wlcore.h wlcore: Load the NVS file asynchronously 2012-09-27 12:13:54 +03:00
wlcore_i.h wlcore: use dynamic keep-alive template ids 2012-09-27 12:13:53 +03:00