diff options
Diffstat (limited to 'net/wireless/reg.c')
-rw-r--r-- | net/wireless/reg.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index de06d5d..8eedb15 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1432,7 +1432,7 @@ static enum reg_request_treatment __regulatory_hint(struct wiphy *wiphy, struct regulatory_request *pending_request) { - const struct ieee80211_regdomain *regd; + const struct ieee80211_regdomain *regd, *tmp; bool intersect = false; enum reg_request_treatment treatment; struct regulatory_request *lr; @@ -1448,7 +1448,9 @@ __regulatory_hint(struct wiphy *wiphy, kfree(pending_request); return PTR_ERR(regd); } + tmp = get_wiphy_regdom(wiphy); rcu_assign_pointer(wiphy->regd, regd); + rcu_free_regdom(tmp); } intersect = true; break; @@ -1468,7 +1470,9 @@ __regulatory_hint(struct wiphy *wiphy, return REG_REQ_IGNORE; } treatment = REG_REQ_ALREADY_SET; + tmp = get_wiphy_regdom(wiphy); rcu_assign_pointer(wiphy->regd, regd); + rcu_free_regdom(tmp); goto new_request; } kfree(pending_request); |