aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/nl80211.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 4af7991a9ec8..5b79ecf17bea 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3571,6 +3571,7 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
3571{ 3571{
3572 struct cfg80211_registered_device *rdev; 3572 struct cfg80211_registered_device *rdev;
3573 struct net_device *dev; 3573 struct net_device *dev;
3574 struct wireless_dev *wdev;
3574 struct cfg80211_crypto_settings crypto; 3575 struct cfg80211_crypto_settings crypto;
3575 struct ieee80211_channel *chan, *fixedchan; 3576 struct ieee80211_channel *chan, *fixedchan;
3576 const u8 *bssid, *ssid, *ie = NULL, *prev_bssid = NULL; 3577 const u8 *bssid, *ssid, *ie = NULL, *prev_bssid = NULL;
@@ -3616,7 +3617,8 @@ static int nl80211_associate(struct sk_buff *skb, struct genl_info *info)
3616 } 3617 }
3617 3618
3618 mutex_lock(&rdev->devlist_mtx); 3619 mutex_lock(&rdev->devlist_mtx);
3619 fixedchan = rdev_fixed_channel(rdev, NULL); 3620 wdev = dev->ieee80211_ptr;
3621 fixedchan = rdev_fixed_channel(rdev, wdev);
3620 if (fixedchan && chan != fixedchan) { 3622 if (fixedchan && chan != fixedchan) {
3621 err = -EBUSY; 3623 err = -EBUSY;
3622 mutex_unlock(&rdev->devlist_mtx); 3624 mutex_unlock(&rdev->devlist_mtx);