diff options
Diffstat (limited to 'package/mac80211/patches/300-revert_regd_breakage.patch')
-rw-r--r-- | package/mac80211/patches/300-revert_regd_breakage.patch | 63 |
1 files changed, 63 insertions, 0 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); |