• Eliad Peller's avatar
    wlcore: protect wlcore_op_set_key with mutex · af390f4d
    Eliad Peller authored
    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: default avatarEliad Peller <eliad@wizery.com>
    Signed-off-by: default avatarArik Nemtsov <arik@wizery.com>
    Signed-off-by: default avatarLuciano Coelho <luca@coelho.fi>
    af390f4d
main.c 46.8 KB