summaryrefslogtreecommitdiffstats
path: root/net/wireless/core.c
diff options
context:
space:
mode:
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>2014-08-13 16:04:51 +0300
committerJohn W. Linville <linville@tuxdriver.com>2014-08-25 16:17:41 -0400
commita796dac9a6bedff6db99f57828c85c97071d3d1e (patch)
tree1cd9e5371031ca8196ffa203275b0c9f4c1a88c3 /net/wireless/core.c
parentf0bd88dfd7e5d53bce84a9d077c949774f27a25a (diff)
downloadlinux-0-day-a796dac9a6bedff6db99f57828c85c97071d3d1e.tar.gz
linux-0-day-a796dac9a6bedff6db99f57828c85c97071d3d1e.tar.xz
wireless: core: Reorder wiphy_register() notifications relevantly
Currently it can send regulatory domain change notification before any NEW_WIPHY notification. Moreover, if rfill_register() fails, calling wiphy_unregister() will send a DEL_WIPHY though no NEW_WIPHY had been sent previously. Thus reordering so it properly notifies NEW_WIPHY before any other. Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/core.c')
-rw-r--r--net/wireless/core.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c
index afee5e0455ea4..682babde4aa5b 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -635,6 +635,9 @@ int wiphy_register(struct wiphy *wiphy)
if (IS_ERR(rdev->wiphy.debugfsdir))
rdev->wiphy.debugfsdir = NULL;
+ cfg80211_debugfs_rdev_add(rdev);
+ nl80211_notify_wiphy(rdev, NL80211_CMD_NEW_WIPHY);
+
if (wiphy->regulatory_flags & REGULATORY_CUSTOM_REG) {
struct regulatory_request request;
@@ -646,8 +649,6 @@ int wiphy_register(struct wiphy *wiphy)
nl80211_send_reg_change_event(&request);
}
- cfg80211_debugfs_rdev_add(rdev);
-
rdev->wiphy.registered = true;
rtnl_unlock();
@@ -659,8 +660,6 @@ int wiphy_register(struct wiphy *wiphy)
return res;
}
- nl80211_notify_wiphy(rdev, NL80211_CMD_NEW_WIPHY);
-
return 0;
}
EXPORT_SYMBOL(wiphy_register);