diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-09-30 15:06:09 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-05 13:35:23 -0400 |
commit | 663fcafd977f13e6483f7d4cf2ccdbc4fae81ed0 (patch) | |
tree | b1c74fe389dff24d94c95eaeb3a52932f6671007 /net/wireless/nl80211.c | |
parent | 4bd530f3ab51c7d656bca29d927a50e5aa87175e (diff) |
cfg80211/mac80211: allow management frame TX in AP mode
Enable management frame transmission and subscribing
to management frames through nl80211 in both cfg80211
and mac80211. Also update a few places that I forgot
to update for P2P-client mode previously, and fix a
small bug with non-action frames in this API.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/nl80211.c')
-rw-r--r-- | net/wireless/nl80211.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 0087c4323c53..cbbbe9ab452f 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -4828,7 +4828,10 @@ static int nl80211_register_mgmt(struct sk_buff *skb, struct genl_info *info) | |||
4828 | 4828 | ||
4829 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && | 4829 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && |
4830 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC && | 4830 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC && |
4831 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT) { | 4831 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT && |
4832 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP && | ||
4833 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP_VLAN && | ||
4834 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) { | ||
4832 | err = -EOPNOTSUPP; | 4835 | err = -EOPNOTSUPP; |
4833 | goto out; | 4836 | goto out; |
4834 | } | 4837 | } |
@@ -4881,7 +4884,10 @@ static int nl80211_tx_mgmt(struct sk_buff *skb, struct genl_info *info) | |||
4881 | 4884 | ||
4882 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && | 4885 | if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_STATION && |
4883 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC && | 4886 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC && |
4884 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT) { | 4887 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT && |
4888 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP && | ||
4889 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP_VLAN && | ||
4890 | dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) { | ||
4885 | err = -EOPNOTSUPP; | 4891 | err = -EOPNOTSUPP; |
4886 | goto out; | 4892 | goto out; |
4887 | } | 4893 | } |