diff options
-rw-r--r-- | package/mac80211/patches/300-revert_regd_breakage.patch | 63 | ||||
-rw-r--r-- | package/mac80211/patches/406-regd_no_assoc_hints.patch | 4 |
2 files changed, 65 insertions, 2 deletions
diff --git a/package/mac80211/patches/300-revert_regd_breakage.patch b/package/mac80211/patches/300-revert_regd_breakage.patch new file mode 100644 index 000000000..03dd926be --- /dev/null +++ b/package/mac80211/patches/300-revert_regd_breakage.patch @@ -0,0 +1,63 @@ +--- a/net/wireless/reg.c ++++ b/net/wireless/reg.c +@@ -107,9 +107,6 @@ struct reg_beacon { + static void reg_todo(struct work_struct *work); + static DECLARE_WORK(reg_work, reg_todo); + +-static void reg_timeout_work(struct work_struct *work); +-static DECLARE_DELAYED_WORK(reg_timeout, reg_timeout_work); +- + /* We keep a static world regulatory domain in case of the absence of CRDA */ + static const struct ieee80211_regdomain world_regdom = { + .n_reg_rules = 5, +@@ -1334,9 +1331,6 @@ static void reg_set_request_processed(vo + need_more_processing = true; + spin_unlock(®_requests_lock); + +- if (last_request->initiator == NL80211_REGDOM_SET_BY_USER) +- cancel_delayed_work_sync(®_timeout); +- + if (need_more_processing) + schedule_work(®_work); + } +@@ -1447,17 +1441,8 @@ static void reg_process_hint(struct regu + r = __regulatory_hint(wiphy, reg_request); + /* This is required so that the orig_* parameters are saved */ + if (r == -EALREADY && wiphy && +- wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) { ++ wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) + wiphy_update_regulatory(wiphy, initiator); +- return; +- } +- +- /* +- * We only time out user hints, given that they should be the only +- * source of bogus requests. +- */ +- if (reg_request->initiator == NL80211_REGDOM_SET_BY_USER) +- schedule_delayed_work(®_timeout, msecs_to_jiffies(3142)); + } + + /* +@@ -2185,13 +2170,6 @@ out: + mutex_unlock(®_mutex); + } + +-static void reg_timeout_work(struct work_struct *work) +-{ +- REG_DBG_PRINT("Timeout while waiting for CRDA to reply, " +- "restoring regulatory settings"); +- restore_regulatory_settings(true); +-} +- + int __init regulatory_init(void) + { + int err = 0; +@@ -2245,7 +2223,6 @@ void /* __init_or_exit */ regulatory_exi + struct reg_beacon *reg_beacon, *btmp; + + cancel_work_sync(®_work); +- cancel_delayed_work_sync(®_timeout); + + mutex_lock(&cfg80211_mutex); + mutex_lock(®_mutex); diff --git a/package/mac80211/patches/406-regd_no_assoc_hints.patch b/package/mac80211/patches/406-regd_no_assoc_hints.patch index 839ce67b0..71affe688 100644 --- a/package/mac80211/patches/406-regd_no_assoc_hints.patch +++ b/package/mac80211/patches/406-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -1644,6 +1644,8 @@ void regulatory_hint_11d(struct wiphy *w +@@ -1629,6 +1629,8 @@ void regulatory_hint_11d(struct wiphy *w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request; @@ -9,7 +9,7 @@ mutex_lock(®_mutex); if (unlikely(!last_request)) -@@ -1850,6 +1852,8 @@ static void restore_regulatory_settings( +@@ -1835,6 +1837,8 @@ static void restore_regulatory_settings( void regulatory_hint_disconnect(void) { |