aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/mac80211.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-03-06 07:15:21 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-03-20 07:02:12 -0400
commit6caffd4f9d11cbd9651d93a511ac385ce84aab83 (patch)
tree2605745846dcc8c4d3e8a389ce264efa715ab9c5 /drivers/net/wireless/iwlwifi/mvm/mac80211.c
parentb9545b48ff4c725ea71f1d9fd9b78da08ddd6551 (diff)
iwlwifi: mvm: suppress key error messages in AP mode
In AP mode, don't attempt to program GTKs into the device, they're used for TX only so not needed and programming them causes error messages. Also, in this case and if key programming fails, avoid trying to remove the key that isn't present later. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mac80211.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac80211.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index ed2d8754c82b..f64bca5da450 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -1087,6 +1087,13 @@ static int iwl_mvm_mac_set_key(struct ieee80211_hw *hw,
1087 1087
1088 switch (cmd) { 1088 switch (cmd) {
1089 case SET_KEY: 1089 case SET_KEY:
1090 if (vif->type == NL80211_IFTYPE_AP && !sta) {
1091 /* GTK on AP interface is a TX-only key, return 0 */
1092 ret = 0;
1093 key->hw_key_idx = STA_KEY_IDX_INVALID;
1094 break;
1095 }
1096
1090 IWL_DEBUG_MAC80211(mvm, "set hwcrypto key\n"); 1097 IWL_DEBUG_MAC80211(mvm, "set hwcrypto key\n");
1091 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, false); 1098 ret = iwl_mvm_set_sta_key(mvm, vif, sta, key, false);
1092 if (ret) { 1099 if (ret) {
@@ -1095,11 +1102,17 @@ static int iwl_mvm_mac_set_key(struct ieee80211_hw *hw,
1095 * can't add key for RX, but we don't need it 1102 * can't add key for RX, but we don't need it
1096 * in the device for TX so still return 0 1103 * in the device for TX so still return 0
1097 */ 1104 */
1105 key->hw_key_idx = STA_KEY_IDX_INVALID;
1098 ret = 0; 1106 ret = 0;
1099 } 1107 }
1100 1108
1101 break; 1109 break;
1102 case DISABLE_KEY: 1110 case DISABLE_KEY:
1111 if (key->hw_key_idx == STA_KEY_IDX_INVALID) {
1112 ret = 0;
1113 break;
1114 }
1115
1103 IWL_DEBUG_MAC80211(mvm, "disable hwcrypto key\n"); 1116 IWL_DEBUG_MAC80211(mvm, "disable hwcrypto key\n");
1104 ret = iwl_mvm_remove_sta_key(mvm, vif, sta, key); 1117 ret = iwl_mvm_remove_sta_key(mvm, vif, sta, key);
1105 break; 1118 break;