aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/mac80211/patches/300-pending_work.patch37
-rw-r--r--package/mac80211/patches/310-ibss_ht.patch6
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);