Changeset 33398


Ignore:
Timestamp:
2012-09-14T15:37:30+02:00 (5 years ago)
Author:
nbd
Message:

mac80211: fix regdb locking issues

Location:
trunk/package/mac80211/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/300-pending_work.patch

    r33331 r33398  
    328328        priv->tsf_low32 = 0; 
    329329  
     330--- a/net/wireless/reg.c 
     331+++ b/net/wireless/reg.c 
     332@@ -352,6 +352,9 @@ static void reg_regdb_search(struct work 
     333        struct reg_regdb_search_request *request; 
     334        const struct ieee80211_regdomain *curdom, *regdom; 
     335        int i, r; 
     336+       bool set_reg = false; 
     337+ 
     338+       mutex_lock(&cfg80211_mutex); 
     339  
     340        mutex_lock(&reg_regdb_search_mutex); 
     341        while (!list_empty(&reg_regdb_search_list)) { 
     342@@ -367,9 +370,7 @@ static void reg_regdb_search(struct work 
     343                                r = reg_copy_regd(&regdom, curdom); 
     344                                if (r) 
     345                                        break; 
     346-                               mutex_lock(&cfg80211_mutex); 
     347-                               set_regdom(regdom); 
     348-                               mutex_unlock(&cfg80211_mutex); 
     349+                               set_reg = true; 
     350                                break; 
     351                        } 
     352                } 
     353@@ -377,6 +378,11 @@ static void reg_regdb_search(struct work 
     354                kfree(request); 
     355        } 
     356        mutex_unlock(&reg_regdb_search_mutex); 
     357+ 
     358+       if (set_reg) 
     359+               set_regdom(regdom); 
     360+ 
     361+       mutex_unlock(&cfg80211_mutex); 
     362 } 
     363  
     364 static DECLARE_WORK(reg_regdb_work, reg_regdb_search); 
  • trunk/package/mac80211/patches/405-regd_no_assoc_hints.patch

    r33331 r33398  
    11--- a/net/wireless/reg.c 
    22+++ b/net/wireless/reg.c 
    3 @@ -1790,6 +1790,8 @@ void regulatory_hint_11d(struct wiphy *w 
     3@@ -1796,6 +1796,8 @@ void regulatory_hint_11d(struct wiphy *w 
    44        enum environment_cap env = ENVIRON_ANY; 
    55        struct regulatory_request *request; 
     
    1010  
    1111        if (unlikely(!last_request)) 
    12 @@ -2024,6 +2026,8 @@ static void restore_regulatory_settings( 
     12@@ -2030,6 +2032,8 @@ static void restore_regulatory_settings( 
    1313  
    1414 void regulatory_hint_disconnect(void) 
Note: See TracChangeset for help on using the changeset viewer.