diff options
Diffstat (limited to 'net/wireless/mlme.c')
-rw-r--r-- | net/wireless/mlme.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index aa5df8865ff7..493b939970cd 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -770,6 +770,15 @@ void cfg80211_new_sta(struct net_device *dev, const u8 *mac_addr, | |||
770 | } | 770 | } |
771 | EXPORT_SYMBOL(cfg80211_new_sta); | 771 | EXPORT_SYMBOL(cfg80211_new_sta); |
772 | 772 | ||
773 | void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp) | ||
774 | { | ||
775 | struct wiphy *wiphy = dev->ieee80211_ptr->wiphy; | ||
776 | struct cfg80211_registered_device *rdev = wiphy_to_dev(wiphy); | ||
777 | |||
778 | nl80211_send_sta_del_event(rdev, dev, mac_addr, gfp); | ||
779 | } | ||
780 | EXPORT_SYMBOL(cfg80211_del_sta); | ||
781 | |||
773 | struct cfg80211_mgmt_registration { | 782 | struct cfg80211_mgmt_registration { |
774 | struct list_head list; | 783 | struct list_head list; |
775 | 784 | ||
@@ -954,6 +963,16 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev, | |||
954 | if (memcmp(mgmt->bssid, dev->dev_addr, ETH_ALEN)) | 963 | if (memcmp(mgmt->bssid, dev->dev_addr, ETH_ALEN)) |
955 | err = -EINVAL; | 964 | err = -EINVAL; |
956 | break; | 965 | break; |
966 | case NL80211_IFTYPE_MESH_POINT: | ||
967 | if (memcmp(mgmt->sa, mgmt->bssid, ETH_ALEN)) { | ||
968 | err = -EINVAL; | ||
969 | break; | ||
970 | } | ||
971 | /* | ||
972 | * check for mesh DA must be done by driver as | ||
973 | * cfg80211 doesn't track the stations | ||
974 | */ | ||
975 | break; | ||
957 | default: | 976 | default: |
958 | err = -EOPNOTSUPP; | 977 | err = -EOPNOTSUPP; |
959 | break; | 978 | break; |