diff --git a/[refs] b/[refs] index ef78ca6f564a..bf17c7526ec5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 78f42aee884dedfd157f79d01f069550edbc95cf +refs/heads/master: b7566fc363e23f0efd3fa1e1460f9421cdc0d77e diff --git a/trunk/net/wireless/reg.c b/trunk/net/wireless/reg.c index 6ea626b30a2a..08d3da2c70ab 100644 --- a/trunk/net/wireless/reg.c +++ b/trunk/net/wireless/reg.c @@ -2189,10 +2189,15 @@ static int __set_regdom(const struct ieee80211_regdomain *rd) * However if a driver requested this specific regulatory * domain we keep it for its private use */ - if (lr->initiator == NL80211_REGDOM_SET_BY_DRIVER) + if (lr->initiator == NL80211_REGDOM_SET_BY_DRIVER) { + const struct ieee80211_regdomain *tmp; + + tmp = get_wiphy_regdom(request_wiphy); rcu_assign_pointer(request_wiphy->regd, rd); - else + rcu_free_regdom(tmp); + } else { kfree(rd); + } rd = NULL;