aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/sme.c
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2013-03-29 16:41:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-03-29 16:41:36 -0400
commit9a574cd67a447059f9c14bbef47873315d7f7b35 (patch)
tree0ebb71d213d868d8884b1fa0e05b7393c66c665b /net/wireless/sme.c
parent689b66cb53fbb5d567aa4e095eaa828aff73aef0 (diff)
parent2e1253d640eb7f8707d2591c93097c1e9f9c71d5 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Conflicts: net/mac80211/sta_info.c net/wireless/core.h
Diffstat (limited to 'net/wireless/sme.c')
-rw-r--r--net/wireless/sme.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 88fc9aa54fe0..818ad637819a 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -85,6 +85,7 @@ static int cfg80211_conn_scan(struct wireless_dev *wdev)
85 ASSERT_RTNL(); 85 ASSERT_RTNL();
86 ASSERT_RDEV_LOCK(rdev); 86 ASSERT_RDEV_LOCK(rdev);
87 ASSERT_WDEV_LOCK(wdev); 87 ASSERT_WDEV_LOCK(wdev);
88 lockdep_assert_held(&rdev->sched_scan_mtx);
88 89
89 if (rdev->scan_req) 90 if (rdev->scan_req)
90 return -EBUSY; 91 return -EBUSY;
@@ -324,11 +325,9 @@ void cfg80211_sme_scan_done(struct net_device *dev)
324{ 325{
325 struct wireless_dev *wdev = dev->ieee80211_ptr; 326 struct wireless_dev *wdev = dev->ieee80211_ptr;
326 327
327 mutex_lock(&wiphy_to_dev(wdev->wiphy)->devlist_mtx);
328 wdev_lock(wdev); 328 wdev_lock(wdev);
329 __cfg80211_sme_scan_done(dev); 329 __cfg80211_sme_scan_done(dev);
330 wdev_unlock(wdev); 330 wdev_unlock(wdev);
331 mutex_unlock(&wiphy_to_dev(wdev->wiphy)->devlist_mtx);
332} 331}
333 332
334void cfg80211_sme_rx_auth(struct net_device *dev, 333void cfg80211_sme_rx_auth(struct net_device *dev,
@@ -928,9 +927,12 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev,
928 int err; 927 int err;
929 928
930 mutex_lock(&rdev->devlist_mtx); 929 mutex_lock(&rdev->devlist_mtx);
930 /* might request scan - scan_mtx -> wdev_mtx dependency */
931 mutex_lock(&rdev->sched_scan_mtx);
931 wdev_lock(dev->ieee80211_ptr); 932 wdev_lock(dev->ieee80211_ptr);
932 err = __cfg80211_connect(rdev, dev, connect, connkeys, NULL); 933 err = __cfg80211_connect(rdev, dev, connect, connkeys, NULL);
933 wdev_unlock(dev->ieee80211_ptr); 934 wdev_unlock(dev->ieee80211_ptr);
935 mutex_unlock(&rdev->sched_scan_mtx);
934 mutex_unlock(&rdev->devlist_mtx); 936 mutex_unlock(&rdev->devlist_mtx);
935 937
936 return err; 938 return err;