• Reinette Chatre's avatar
    iwlwifi: update key flags at time key is set · 299f5462
    Reinette Chatre authored
    We need to be symmetrical in what is done when key is set and cleared.
    This is important wrt the key flags as they are used during key
    clearing and if they are not set when the key is set the key cannot be
    cleared completely.
    
    This addresses the many occurences of the WARN found in
    iwl_set_tkip_dynamic_key_info() and tracked in
    http://www.kerneloops.org/searchweek.php?search=iwl_set_dynamic_key
    
    If calling iwl_set_tkip_dynamic_key_info()/iwl_remove_dynamic_key()
    pair a few times in a row will cause that we run out of key space.
    This is because the index stored in the key flags is used by
    iwl_remove_dynamic_key() to decide if it should remove the key.
    Unfortunately the key flags, and hence the key index is currently only
    set at the time the key is written to the device (in
    iwl_update_tkip_key()) and _not_ in iwl_set_tkip_dynamic_key_info().
    Fix this by setting flags in iwl_set_tkip_dynamic_key_info().
    Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    299f5462
iwl-sta.c 32.7 KB