diff options
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/nl80211.c | 4 |
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); |