mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
mac80211: fix regdb locking issues
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33398 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -327,3 +327,38 @@
|
||||
priv->tsf_high32 = 0;
|
||||
priv->tsf_low32 = 0;
|
||||
|
||||
--- a/net/wireless/reg.c
|
||||
+++ b/net/wireless/reg.c
|
||||
@@ -352,6 +352,9 @@ static void reg_regdb_search(struct work
|
||||
struct reg_regdb_search_request *request;
|
||||
const struct ieee80211_regdomain *curdom, *regdom;
|
||||
int i, r;
|
||||
+ bool set_reg = false;
|
||||
+
|
||||
+ mutex_lock(&cfg80211_mutex);
|
||||
|
||||
mutex_lock(®_regdb_search_mutex);
|
||||
while (!list_empty(®_regdb_search_list)) {
|
||||
@@ -367,9 +370,7 @@ static void reg_regdb_search(struct work
|
||||
r = reg_copy_regd(®dom, curdom);
|
||||
if (r)
|
||||
break;
|
||||
- mutex_lock(&cfg80211_mutex);
|
||||
- set_regdom(regdom);
|
||||
- mutex_unlock(&cfg80211_mutex);
|
||||
+ set_reg = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -377,6 +378,11 @@ static void reg_regdb_search(struct work
|
||||
kfree(request);
|
||||
}
|
||||
mutex_unlock(®_regdb_search_mutex);
|
||||
+
|
||||
+ if (set_reg)
|
||||
+ set_regdom(regdom);
|
||||
+
|
||||
+ mutex_unlock(&cfg80211_mutex);
|
||||
}
|
||||
|
||||
static DECLARE_WORK(reg_regdb_work, reg_regdb_search);
|
||||
|
||||
Reference in New Issue
Block a user