cfg80211: revert upstream regdomain handling breakage

SVN-Revision: 26752
This commit is contained in:
Felix Fietkau 2011-04-25 18:21:28 +00:00
parent cbbe49a1d8
commit 9dbcf86d8e
2 changed files with 65 additions and 2 deletions

View file

@ -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(&reg_requests_lock);
- if (last_request->initiator == NL80211_REGDOM_SET_BY_USER)
- cancel_delayed_work_sync(&reg_timeout);
-
if (need_more_processing)
schedule_work(&reg_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(&reg_timeout, msecs_to_jiffies(3142));
}
/*
@@ -2185,13 +2170,6 @@ out:
mutex_unlock(&reg_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(&reg_work);
- cancel_delayed_work_sync(&reg_timeout);
mutex_lock(&cfg80211_mutex);
mutex_lock(&reg_mutex);

View file

@ -1,6 +1,6 @@
--- a/net/wireless/reg.c --- a/net/wireless/reg.c
+++ b/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; enum environment_cap env = ENVIRON_ANY;
struct regulatory_request *request; struct regulatory_request *request;
@ -9,7 +9,7 @@
mutex_lock(&reg_mutex); mutex_lock(&reg_mutex);
if (unlikely(!last_request)) 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) void regulatory_hint_disconnect(void)
{ {