diff options
-rw-r--r-- | package/mac80211/patches/300-pending_work.patch | 37 | ||||
-rw-r--r-- | package/mac80211/patches/310-ibss_ht.patch | 6 |
2 files changed, 40 insertions, 3 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch index 596ef67a78..7a8e1b1e6a 100644 --- a/package/mac80211/patches/300-pending_work.patch +++ b/package/mac80211/patches/300-pending_work.patch @@ -2811,3 +2811,40 @@ ath9k_hw_start_nfcal(ah, true); if (ah->caldata) +--- a/net/mac80211/ieee80211_i.h ++++ b/net/mac80211/ieee80211_i.h +@@ -671,7 +671,6 @@ enum queue_stop_reason { + IEEE80211_QUEUE_STOP_REASON_AGGREGATION, + IEEE80211_QUEUE_STOP_REASON_SUSPEND, + IEEE80211_QUEUE_STOP_REASON_SKB_ADD, +- IEEE80211_QUEUE_STOP_REASON_CHTYPE_CHANGE, + }; + + #ifdef CONFIG_MAC80211_LEDS +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -1921,24 +1921,8 @@ static void ieee80211_rx_mgmt_beacon(str + + rcu_read_unlock(); + +- /* +- * Whenever the AP announces the HT mode change that can be +- * 40MHz intolerant or etc., it would be safer to stop tx +- * queues before doing hw config to avoid buffer overflow. +- */ +- ieee80211_stop_queues_by_reason(&sdata->local->hw, +- IEEE80211_QUEUE_STOP_REASON_CHTYPE_CHANGE); +- +- /* flush out all packets */ +- synchronize_net(); +- +- drv_flush(local, false); +- + changed |= ieee80211_enable_ht(sdata, elems.ht_info_elem, + bssid, ap_ht_cap_flags); +- +- ieee80211_wake_queues_by_reason(&sdata->local->hw, +- IEEE80211_QUEUE_STOP_REASON_CHTYPE_CHANGE); + } + + /* Note: country IE parsing is done for us by cfg80211 */ diff --git a/package/mac80211/patches/310-ibss_ht.patch b/package/mac80211/patches/310-ibss_ht.patch index 1acd253f02..6e0de5b467 100644 --- a/package/mac80211/patches/310-ibss_ht.patch +++ b/package/mac80211/patches/310-ibss_ht.patch @@ -169,7 +169,7 @@ unsigned long ibss_join_req; /* probe response/beacon for IBSS */ -@@ -1091,6 +1092,7 @@ void ieee80211_ibss_notify_scan_complete +@@ -1090,6 +1091,7 @@ void ieee80211_ibss_notify_scan_complete void ieee80211_ibss_setup_sdata(struct ieee80211_sub_if_data *sdata); struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, u8 *bssid, u8 *addr, u32 supp_rates, @@ -177,7 +177,7 @@ gfp_t gfp); int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata, struct cfg80211_ibss_params *params); -@@ -1344,6 +1346,12 @@ void ieee80211_recalc_smps(struct ieee80 +@@ -1343,6 +1345,12 @@ void ieee80211_recalc_smps(struct ieee80 size_t ieee80211_ie_split(const u8 *ies, size_t ielen, const u8 *ids, int n_ids, size_t offset); size_t ieee80211_ie_split_vendor(const u8 *ies, size_t ielen, size_t offset); @@ -190,7 +190,7 @@ /* internal work items */ void ieee80211_work_init(struct ieee80211_local *local); -@@ -1372,6 +1380,8 @@ ieee80211_get_channel_mode(struct ieee80 +@@ -1371,6 +1379,8 @@ ieee80211_get_channel_mode(struct ieee80 bool ieee80211_set_channel_type(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata, enum nl80211_channel_type chantype); |