diff options
Diffstat (limited to 'net/wireless/mlme.c')
| -rw-r--r-- | net/wireless/mlme.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 48ead6f0426d..e74a1a2119d3 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c  | |||
| @@ -44,10 +44,10 @@ void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len) | |||
| 44 | } | 44 | } | 
| 45 | } | 45 | } | 
| 46 | 46 | ||
| 47 | WARN_ON(!done); | 47 | if (done) { | 
| 48 | 48 | nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); | |
| 49 | nl80211_send_rx_auth(rdev, dev, buf, len, GFP_KERNEL); | 49 | cfg80211_sme_rx_auth(dev, buf, len); | 
| 50 | cfg80211_sme_rx_auth(dev, buf, len); | 50 | } | 
| 51 | 51 | ||
| 52 | wdev_unlock(wdev); | 52 | wdev_unlock(wdev); | 
| 53 | } | 53 | } | 
| @@ -827,6 +827,7 @@ int cfg80211_mlme_action(struct cfg80211_registered_device *rdev, | |||
| 827 | struct net_device *dev, | 827 | struct net_device *dev, | 
| 828 | struct ieee80211_channel *chan, | 828 | struct ieee80211_channel *chan, | 
| 829 | enum nl80211_channel_type channel_type, | 829 | enum nl80211_channel_type channel_type, | 
| 830 | bool channel_type_valid, | ||
| 830 | const u8 *buf, size_t len, u64 *cookie) | 831 | const u8 *buf, size_t len, u64 *cookie) | 
| 831 | { | 832 | { | 
| 832 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 833 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 
| @@ -845,8 +846,9 @@ int cfg80211_mlme_action(struct cfg80211_registered_device *rdev, | |||
| 845 | if (!wdev->current_bss || | 846 | if (!wdev->current_bss || | 
| 846 | memcmp(wdev->current_bss->pub.bssid, mgmt->bssid, | 847 | memcmp(wdev->current_bss->pub.bssid, mgmt->bssid, | 
| 847 | ETH_ALEN) != 0 || | 848 | ETH_ALEN) != 0 || | 
| 848 | memcmp(wdev->current_bss->pub.bssid, mgmt->da, | 849 | (wdev->iftype == NL80211_IFTYPE_STATION && | 
| 849 | ETH_ALEN) != 0) | 850 | memcmp(wdev->current_bss->pub.bssid, mgmt->da, | 
| 851 | ETH_ALEN) != 0)) | ||
| 850 | return -ENOTCONN; | 852 | return -ENOTCONN; | 
| 851 | } | 853 | } | 
| 852 | 854 | ||
| @@ -855,7 +857,7 @@ int cfg80211_mlme_action(struct cfg80211_registered_device *rdev, | |||
| 855 | 857 | ||
| 856 | /* Transmit the Action frame as requested by user space */ | 858 | /* Transmit the Action frame as requested by user space */ | 
| 857 | return rdev->ops->action(&rdev->wiphy, dev, chan, channel_type, | 859 | return rdev->ops->action(&rdev->wiphy, dev, chan, channel_type, | 
| 858 | buf, len, cookie); | 860 | channel_type_valid, buf, len, cookie); | 
| 859 | } | 861 | } | 
| 860 | 862 | ||
| 861 | bool cfg80211_rx_action(struct net_device *dev, int freq, const u8 *buf, | 863 | bool cfg80211_rx_action(struct net_device *dev, int freq, const u8 *buf, | 
