From e34732c0863cc1dac3b43ab3bc7c1df06d4ccc20 Mon Sep 17 00:00:00 2001 From: Maxime Bizon Date: Wed, 21 Jul 2010 17:21:38 +0200 Subject: [PATCH] --- yaml --- r: 203736 b: refs/heads/master c: 5a652052fedbd7869572c757dd2ffc2ed420c69d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/wireless/core.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index c4be7c6a6658..76f3c5949027 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: acd82aa868c2133149370c18d85f8005fbf5611e +refs/heads/master: 5a652052fedbd7869572c757dd2ffc2ed420c69d diff --git a/trunk/net/wireless/core.c b/trunk/net/wireless/core.c index 47fcfd0eebc2..f65c6494ede9 100644 --- a/trunk/net/wireless/core.c +++ b/trunk/net/wireless/core.c @@ -472,24 +472,22 @@ int wiphy_register(struct wiphy *wiphy) /* check and set up bitrates */ ieee80211_set_bitrate_flags(wiphy); + mutex_lock(&cfg80211_mutex); + res = device_add(&rdev->wiphy.dev); if (res) - return res; + goto out_unlock; res = rfkill_register(rdev->rfkill); if (res) goto out_rm_dev; - mutex_lock(&cfg80211_mutex); - /* set up regulatory info */ wiphy_update_regulatory(wiphy, NL80211_REGDOM_SET_BY_CORE); list_add_rcu(&rdev->list, &cfg80211_rdev_list); cfg80211_rdev_list_generation++; - mutex_unlock(&cfg80211_mutex); - /* add to debugfs */ rdev->wiphy.debugfsdir = debugfs_create_dir(wiphy_name(&rdev->wiphy), @@ -509,11 +507,15 @@ int wiphy_register(struct wiphy *wiphy) } cfg80211_debugfs_rdev_add(rdev); + mutex_unlock(&cfg80211_mutex); return 0; - out_rm_dev: +out_rm_dev: device_del(&rdev->wiphy.dev); + +out_unlock: + mutex_unlock(&cfg80211_mutex); return res; } EXPORT_SYMBOL(wiphy_register);