diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c index 7a2babe0dd4e..37e624095e40 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c @@ -301,15 +301,16 @@ static u8 iwlagn_key_sta_id(struct iwl_priv *priv, return sta_id; } -static int iwlagn_set_dynamic_key(struct iwl_priv *priv, - struct ieee80211_key_conf *keyconf, - u8 sta_id, u32 tkip_iv32, u16 *tkip_p1k, - u32 cmd_flags) +static int iwlagn_send_sta_key(struct iwl_priv *priv, + struct ieee80211_key_conf *keyconf, + u8 sta_id, u32 tkip_iv32, u16 *tkip_p1k, + u32 cmd_flags) { unsigned long flags; __le16 key_flags; struct iwl_addsta_cmd sta_cmd; int i; + spin_lock_irqsave(&priv->sta_lock, flags); memcpy(&sta_cmd, &priv->stations[sta_id].sta, sizeof(sta_cmd)); spin_unlock_irqrestore(&priv->sta_lock, flags); @@ -370,8 +371,8 @@ void iwl_update_tkip_key(struct iwl_priv *priv, return; } - iwlagn_set_dynamic_key(priv, keyconf, sta_id, - iv32, phase1key, CMD_ASYNC); + iwlagn_send_sta_key(priv, keyconf, sta_id, + iv32, phase1key, CMD_ASYNC); } int iwl_remove_dynamic_key(struct iwl_priv *priv, @@ -450,16 +451,16 @@ int iwl_set_dynamic_key(struct iwl_priv *priv, /* pre-fill phase 1 key into device cache */ ieee80211_get_key_rx_seq(keyconf, 0, &seq); ieee80211_get_tkip_rx_p1k(keyconf, addr, seq.tkip.iv32, p1k); - ret = iwlagn_set_dynamic_key(priv, keyconf, sta_id, - seq.tkip.iv32, p1k, CMD_SYNC); + ret = iwlagn_send_sta_key(priv, keyconf, sta_id, + seq.tkip.iv32, p1k, CMD_SYNC); break; case WLAN_CIPHER_SUITE_CCMP: keyconf->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; /* fall through */ case WLAN_CIPHER_SUITE_WEP40: case WLAN_CIPHER_SUITE_WEP104: - ret = iwlagn_set_dynamic_key(priv, keyconf, sta_id, - 0, NULL, CMD_SYNC); + ret = iwlagn_send_sta_key(priv, keyconf, sta_id, + 0, NULL, CMD_SYNC); break; default: IWL_ERR(priv, "Unknown cipher %x\n", keyconf->cipher); |