diff options
Diffstat (limited to 'net/mac80211/key.c')
| -rw-r--r-- | net/mac80211/key.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/net/mac80211/key.c b/net/mac80211/key.c index 0bb7038121ac..bd4e46ec32bd 100644 --- a/net/mac80211/key.c +++ b/net/mac80211/key.c @@ -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);  	} | 
