|
@@ -140,7 +140,9 @@ 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))
|
|
|
+ if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
|
|
sdata->crypto_tx_tailroom_needed_cnt--;
|
|
|
|
|
|
WARN_ON((key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
|
|
@@ -188,7 +190,9 @@ static void ieee80211_key_disable_hw_accel(struct ieee80211_key *key)
|
|
|
sta = key->sta;
|
|
|
sdata = key->sdata;
|
|
|
|
|
|
- if (!(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC))
|
|
|
+ if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
|
|
increment_tailroom_need_count(sdata);
|
|
|
|
|
|
ret = drv_set_key(key->local, DISABLE_KEY, sdata,
|
|
@@ -884,7 +888,9 @@ void ieee80211_remove_key(struct ieee80211_key_conf *keyconf)
|
|
|
if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
|
|
|
key->flags &= ~KEY_FLAG_UPLOADED_TO_HARDWARE;
|
|
|
|
|
|
- if (!(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC))
|
|
|
+ if (!((key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV) ||
|
|
|
+ (key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)))
|
|
|
increment_tailroom_need_count(key->sdata);
|
|
|
}
|
|
|
|