From b53cc9e3d902afb641b20c812d53aaede84421d3 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 25 Apr 2011 18:21:28 +0000 Subject: [PATCH] cfg80211: revert upstream regdomain handling breakage git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26752 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/300-revert_regd_breakage.patch | 63 ++++++++++++++++++++++ .../mac80211/patches/406-regd_no_assoc_hints.patch | 4 +- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 package/mac80211/patches/300-revert_regd_breakage.patch 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 0000000000..03dd926be5 --- /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 839ce67b0a..71affe6886 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) { -- 2.11.0