|
@@ -5724,7 +5724,8 @@ il4965_mac_setup_register(struct il_priv *il, u32 max_probe_length)
|
|
BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
|
|
BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
|
|
|
|
|
|
hw->wiphy->flags |=
|
|
hw->wiphy->flags |=
|
|
- WIPHY_FLAG_CUSTOM_REGULATORY | WIPHY_FLAG_DISABLE_BEACON_HINTS;
|
|
|
|
|
|
+ WIPHY_FLAG_CUSTOM_REGULATORY | WIPHY_FLAG_DISABLE_BEACON_HINTS |
|
|
|
|
+ WIPHY_FLAG_IBSS_RSN;
|
|
|
|
|
|
/*
|
|
/*
|
|
* For now, disable PS by default because it affects
|
|
* For now, disable PS by default because it affects
|
|
@@ -5873,6 +5874,16 @@ il4965_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
|
return -EOPNOTSUPP;
|
|
return -EOPNOTSUPP;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * To support IBSS RSN, don't program group keys in IBSS, the
|
|
|
|
+ * hardware will then not attempt to decrypt the frames.
|
|
|
|
+ */
|
|
|
|
+ if (vif->type == NL80211_IFTYPE_ADHOC &&
|
|
|
|
+ !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) {
|
|
|
|
+ D_MAC80211("leave - ad-hoc group key\n");
|
|
|
|
+ return -EOPNOTSUPP;
|
|
|
|
+ }
|
|
|
|
+
|
|
sta_id = il_sta_id_or_broadcast(il, sta);
|
|
sta_id = il_sta_id_or_broadcast(il, sta);
|
|
if (sta_id == IL_INVALID_STATION)
|
|
if (sta_id == IL_INVALID_STATION)
|
|
return -EINVAL;
|
|
return -EINVAL;
|