]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mac80211: Fix Extended Key ID auto activation
authorAlexander Wetzel <alexander@wetzel-home.de>
Mon, 22 Apr 2019 21:34:11 +0000 (23:34 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 26 Apr 2019 11:02:11 +0000 (13:02 +0200)
Only enable Extended Key ID support for drivers which are not supporting
crypto offload and also do not support A-MPDU.

While any driver using SW crypto from mac80211 is generally able to also
support Extended Key ID these drivers are likely to mix keyIDs in
AMPDUs when rekeying.

According to IEEE 802.11-2016 "9.7.3 A-MPDU contents" this is not
allowed.

Signed-off-by: Alexander Wetzel <alexander@wetzel-home.de>
[reword comment a bit, move ! into logic expression]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/main.c

index 5d6b93050c0b819ce706598e8f062dbfcf5f8da8..e56650a9838e82cd266628853777cdd972a67677 100644 (file)
@@ -1051,7 +1051,11 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
                }
        }
 
-       if (!local->ops->set_key ||
+       /* Enable Extended Key IDs when driver allowed it, or when it
+        * supports neither HW crypto nor A-MPDUs
+        */
+       if ((!local->ops->set_key &&
+            !ieee80211_hw_check(hw, AMPDU_AGGREGATION)) ||
            ieee80211_hw_check(&local->hw, EXT_KEY_ID_NATIVE))
                wiphy_ext_feature_set(local->hw.wiphy,
                                      NL80211_EXT_FEATURE_EXT_KEY_ID);