mac80211: Add MIC space only for TX key option
Add a key flag to indicates that the device only needs MIC space and not a real MIC. In such cases, keep the MIC zeroed for ease of debug. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
c7c477b52c
commit
9de18d8186
@@ -178,13 +178,17 @@ 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 |
|
||||
IEEE80211_KEY_FLAG_PUT_MIC_SPACE)) ||
|
||||
(key->conf.flags & IEEE80211_KEY_FLAG_RESERVE_TAILROOM)))
|
||||
decrease_tailroom_need_count(sdata, 1);
|
||||
|
||||
WARN_ON((key->conf.flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
|
||||
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV));
|
||||
|
||||
WARN_ON((key->conf.flags & IEEE80211_KEY_FLAG_PUT_MIC_SPACE) &&
|
||||
(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_MMIC));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -237,7 +241,8 @@ 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 |
|
||||
IEEE80211_KEY_FLAG_PUT_MIC_SPACE)) ||
|
||||
(key->conf.flags & IEEE80211_KEY_FLAG_RESERVE_TAILROOM)))
|
||||
increment_tailroom_need_count(sdata);
|
||||
|
||||
@@ -1104,7 +1109,8 @@ 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 |
|
||||
IEEE80211_KEY_FLAG_PUT_MIC_SPACE)) ||
|
||||
(key->conf.flags & IEEE80211_KEY_FLAG_RESERVE_TAILROOM)))
|
||||
increment_tailroom_need_count(key->sdata);
|
||||
}
|
||||
|
Reference in New Issue
Block a user