|
|
|
@ -101,11 +101,6 @@ static int ieee80211_key_enable_hw_accel(struct ieee80211_key *key) |
|
|
|
|
|
|
|
|
|
if (!ret) { |
|
|
|
|
key->flags |= KEY_FLAG_UPLOADED_TO_HARDWARE; |
|
|
|
|
|
|
|
|
|
if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) || |
|
|
|
|
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))) |
|
|
|
|
key->local->crypto_tx_tailroom_needed_cnt--; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -161,10 +156,6 @@ static void ieee80211_key_disable_hw_accel(struct ieee80211_key *key) |
|
|
|
|
key->conf.keyidx, sta ? sta->addr : bcast_addr, ret); |
|
|
|
|
|
|
|
|
|
key->flags &= ~KEY_FLAG_UPLOADED_TO_HARDWARE; |
|
|
|
|
|
|
|
|
|
if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) || |
|
|
|
|
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))) |
|
|
|
|
key->local->crypto_tx_tailroom_needed_cnt++; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ieee80211_key_removed(struct ieee80211_key_conf *key_conf) |
|
|
|
@ -403,10 +394,8 @@ static void __ieee80211_key_destroy(struct ieee80211_key *key) |
|
|
|
|
ieee80211_aes_key_free(key->u.ccmp.tfm); |
|
|
|
|
if (key->conf.cipher == WLAN_CIPHER_SUITE_AES_CMAC) |
|
|
|
|
ieee80211_aes_cmac_key_free(key->u.aes_cmac.tfm); |
|
|
|
|
if (key->local) { |
|
|
|
|
if (key->local) |
|
|
|
|
ieee80211_debugfs_key_remove(key); |
|
|
|
|
key->local->crypto_tx_tailroom_needed_cnt--; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
kfree(key); |
|
|
|
|
} |
|
|
|
@ -468,8 +457,6 @@ int ieee80211_key_link(struct ieee80211_key *key, |
|
|
|
|
|
|
|
|
|
ieee80211_debugfs_key_add(key); |
|
|
|
|
|
|
|
|
|
key->local->crypto_tx_tailroom_needed_cnt++; |
|
|
|
|
|
|
|
|
|
ret = ieee80211_key_enable_hw_accel(key); |
|
|
|
|
|
|
|
|
|
mutex_unlock(&sdata->local->key_mtx); |
|
|
|
@ -511,12 +498,8 @@ void ieee80211_enable_keys(struct ieee80211_sub_if_data *sdata) |
|
|
|
|
|
|
|
|
|
mutex_lock(&sdata->local->key_mtx); |
|
|
|
|
|
|
|
|
|
sdata->local->crypto_tx_tailroom_needed_cnt = 0; |
|
|
|
|
|
|
|
|
|
list_for_each_entry(key, &sdata->key_list, list) { |
|
|
|
|
sdata->local->crypto_tx_tailroom_needed_cnt++; |
|
|
|
|
list_for_each_entry(key, &sdata->key_list, list) |
|
|
|
|
ieee80211_key_enable_hw_accel(key); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mutex_unlock(&sdata->local->key_mtx); |
|
|
|
|
} |
|
|
|
|