diff options
author | David S. Miller <davem@davemloft.net> | 2016-06-11 02:13:32 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-11 02:13:32 -0400 |
commit | d6cf3a85b47424d6fc7b57129680097067cf95eb (patch) | |
tree | 9c122d64c1f038bbfe4d9d7687b4bb3115ce5147 /net/wireless | |
parent | 52a3d792bb54d379c4546cbc40c1365139922e15 (diff) | |
parent | 5caa328e3811b7cfa33fd02c93280ffa622deb0e (diff) |
Merge tag 'mac80211-next-for-davem-2016-06-09' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says:
====================
For the next cycle, we have the following:
* the biggest change is MichaĆ's work on integrating FQ/codel
with the mac80211 internal software queues
* cfg80211 connect result gets clarified for the
"no connection at all" case
* advertisement of per-interface type capabilities, in case
they differ (which makes a lot of sense for some capabilities)
* most of the nl80211 & hwsim unprivileged namespace operation
changes
* human-readable VHT capabilities in debugfs
* some other cleanups, like spelling
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wireless')
-rw-r--r-- | net/wireless/core.c | 30 | ||||
-rw-r--r-- | net/wireless/core.h | 4 | ||||
-rw-r--r-- | net/wireless/nl80211.c | 232 | ||||
-rw-r--r-- | net/wireless/nl80211.h | 2 | ||||
-rw-r--r-- | net/wireless/sme.c | 8 |
5 files changed, 172 insertions, 104 deletions
diff --git a/net/wireless/core.c b/net/wireless/core.c index ecca3896b9f7..39d9abd309ea 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
@@ -748,6 +748,36 @@ int wiphy_register(struct wiphy *wiphy) | |||
748 | nl80211_send_reg_change_event(&request); | 748 | nl80211_send_reg_change_event(&request); |
749 | } | 749 | } |
750 | 750 | ||
751 | /* Check that nobody globally advertises any capabilities they do not | ||
752 | * advertise on all possible interface types. | ||
753 | */ | ||
754 | if (wiphy->extended_capabilities_len && | ||
755 | wiphy->num_iftype_ext_capab && | ||
756 | wiphy->iftype_ext_capab) { | ||
757 | u8 supported_on_all, j; | ||
758 | const struct wiphy_iftype_ext_capab *capab; | ||
759 | |||
760 | capab = wiphy->iftype_ext_capab; | ||
761 | for (j = 0; j < wiphy->extended_capabilities_len; j++) { | ||
762 | if (capab[0].extended_capabilities_len > j) | ||
763 | supported_on_all = | ||
764 | capab[0].extended_capabilities[j]; | ||
765 | else | ||
766 | supported_on_all = 0x00; | ||
767 | for (i = 1; i < wiphy->num_iftype_ext_capab; i++) { | ||
768 | if (j >= capab[i].extended_capabilities_len) { | ||
769 | supported_on_all = 0x00; | ||
770 | break; | ||
771 | } | ||
772 | supported_on_all &= | ||
773 | capab[i].extended_capabilities[j]; | ||
774 | } | ||
775 | if (WARN_ON(wiphy->extended_capabilities[j] & | ||
776 | ~supported_on_all)) | ||
777 | break; | ||
778 | } | ||
779 | } | ||
780 | |||
751 | rdev->wiphy.registered = true; | 781 | rdev->wiphy.registered = true; |
752 | rtnl_unlock(); | 782 | rtnl_unlock(); |
753 | 783 | ||
diff --git a/net/wireless/core.h b/net/wireless/core.h index 025b7a5d508b..a4d547f99f8d 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h | |||
@@ -214,7 +214,7 @@ struct cfg80211_event { | |||
214 | size_t req_ie_len; | 214 | size_t req_ie_len; |
215 | size_t resp_ie_len; | 215 | size_t resp_ie_len; |
216 | struct cfg80211_bss *bss; | 216 | struct cfg80211_bss *bss; |
217 | u16 status; | 217 | int status; /* -1 = failed; 0..65535 = status code */ |
218 | } cr; | 218 | } cr; |
219 | struct { | 219 | struct { |
220 | const u8 *req_ie; | 220 | const u8 *req_ie; |
@@ -374,7 +374,7 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev, | |||
374 | void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | 374 | void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, |
375 | const u8 *req_ie, size_t req_ie_len, | 375 | const u8 *req_ie, size_t req_ie_len, |
376 | const u8 *resp_ie, size_t resp_ie_len, | 376 | const u8 *resp_ie, size_t resp_ie_len, |
377 | u16 status, bool wextev, | 377 | int status, bool wextev, |
378 | struct cfg80211_bss *bss); | 378 | struct cfg80211_bss *bss); |
379 | void __cfg80211_disconnected(struct net_device *dev, const u8 *ie, | 379 | void __cfg80211_disconnected(struct net_device *dev, const u8 *ie, |
380 | size_t ie_len, u16 reason, bool from_ap); | 380 | size_t ie_len, u16 reason, bool from_ap); |
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index d7599014055d..c503e96bfd5a 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c | |||
@@ -167,6 +167,7 @@ __cfg80211_rdev_from_attrs(struct net *netns, struct nlattr **attrs) | |||
167 | 167 | ||
168 | if (attrs[NL80211_ATTR_IFINDEX]) { | 168 | if (attrs[NL80211_ATTR_IFINDEX]) { |
169 | int ifindex = nla_get_u32(attrs[NL80211_ATTR_IFINDEX]); | 169 | int ifindex = nla_get_u32(attrs[NL80211_ATTR_IFINDEX]); |
170 | |||
170 | netdev = __dev_get_by_index(netns, ifindex); | 171 | netdev = __dev_get_by_index(netns, ifindex); |
171 | if (netdev) { | 172 | if (netdev) { |
172 | if (netdev->ieee80211_ptr) | 173 | if (netdev->ieee80211_ptr) |
@@ -731,6 +732,7 @@ static int nl80211_parse_key_new(struct nlattr *key, struct key_parse *k) | |||
731 | 732 | ||
732 | if (tb[NL80211_KEY_DEFAULT_TYPES]) { | 733 | if (tb[NL80211_KEY_DEFAULT_TYPES]) { |
733 | struct nlattr *kdt[NUM_NL80211_KEY_DEFAULT_TYPES]; | 734 | struct nlattr *kdt[NUM_NL80211_KEY_DEFAULT_TYPES]; |
735 | |||
734 | err = nla_parse_nested(kdt, NUM_NL80211_KEY_DEFAULT_TYPES - 1, | 736 | err = nla_parse_nested(kdt, NUM_NL80211_KEY_DEFAULT_TYPES - 1, |
735 | tb[NL80211_KEY_DEFAULT_TYPES], | 737 | tb[NL80211_KEY_DEFAULT_TYPES], |
736 | nl80211_key_default_policy); | 738 | nl80211_key_default_policy); |
@@ -1264,7 +1266,7 @@ nl80211_send_mgmt_stypes(struct sk_buff *msg, | |||
1264 | struct nl80211_dump_wiphy_state { | 1266 | struct nl80211_dump_wiphy_state { |
1265 | s64 filter_wiphy; | 1267 | s64 filter_wiphy; |
1266 | long start; | 1268 | long start; |
1267 | long split_start, band_start, chan_start; | 1269 | long split_start, band_start, chan_start, capa_start; |
1268 | bool split; | 1270 | bool split; |
1269 | }; | 1271 | }; |
1270 | 1272 | ||
@@ -1382,6 +1384,7 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev, | |||
1382 | rdev->ops->get_antenna) { | 1384 | rdev->ops->get_antenna) { |
1383 | u32 tx_ant = 0, rx_ant = 0; | 1385 | u32 tx_ant = 0, rx_ant = 0; |
1384 | int res; | 1386 | int res; |
1387 | |||
1385 | res = rdev_get_antenna(rdev, &tx_ant, &rx_ant); | 1388 | res = rdev_get_antenna(rdev, &tx_ant, &rx_ant); |
1386 | if (!res) { | 1389 | if (!res) { |
1387 | if (nla_put_u32(msg, | 1390 | if (nla_put_u32(msg, |
@@ -1761,6 +1764,47 @@ static int nl80211_send_wiphy(struct cfg80211_registered_device *rdev, | |||
1761 | nla_nest_end(msg, nested); | 1764 | nla_nest_end(msg, nested); |
1762 | } | 1765 | } |
1763 | 1766 | ||
1767 | state->split_start++; | ||
1768 | break; | ||
1769 | case 13: | ||
1770 | if (rdev->wiphy.num_iftype_ext_capab && | ||
1771 | rdev->wiphy.iftype_ext_capab) { | ||
1772 | struct nlattr *nested_ext_capab, *nested; | ||
1773 | |||
1774 | nested = nla_nest_start(msg, | ||
1775 | NL80211_ATTR_IFTYPE_EXT_CAPA); | ||
1776 | if (!nested) | ||
1777 | goto nla_put_failure; | ||
1778 | |||
1779 | for (i = state->capa_start; | ||
1780 | i < rdev->wiphy.num_iftype_ext_capab; i++) { | ||
1781 | const struct wiphy_iftype_ext_capab *capab; | ||
1782 | |||
1783 | capab = &rdev->wiphy.iftype_ext_capab[i]; | ||
1784 | |||
1785 | nested_ext_capab = nla_nest_start(msg, i); | ||
1786 | if (!nested_ext_capab || | ||
1787 | nla_put_u32(msg, NL80211_ATTR_IFTYPE, | ||
1788 | capab->iftype) || | ||
1789 | nla_put(msg, NL80211_ATTR_EXT_CAPA, | ||
1790 | capab->extended_capabilities_len, | ||
1791 | capab->extended_capabilities) || | ||
1792 | nla_put(msg, NL80211_ATTR_EXT_CAPA_MASK, | ||
1793 | capab->extended_capabilities_len, | ||
1794 | capab->extended_capabilities_mask)) | ||
1795 | goto nla_put_failure; | ||
1796 | |||
1797 | nla_nest_end(msg, nested_ext_capab); | ||
1798 | if (state->split) | ||
1799 | break; | ||
1800 | } | ||
1801 | nla_nest_end(msg, nested); | ||
1802 | if (i < rdev->wiphy.num_iftype_ext_capab) { | ||
1803 | state->capa_start = i + 1; | ||
1804 | break; | ||
1805 | } | ||
1806 | } | ||
1807 | |||
1764 | /* done */ | 1808 | /* done */ |
1765 | state->split_start = 0; | 1809 | state->split_start = 0; |
1766 | break; | 1810 | break; |
@@ -2116,7 +2160,6 @@ static int nl80211_set_wds_peer(struct sk_buff *skb, struct genl_info *info) | |||
2116 | return rdev_set_wds_peer(rdev, dev, bssid); | 2160 | return rdev_set_wds_peer(rdev, dev, bssid); |
2117 | } | 2161 | } |
2118 | 2162 | ||
2119 | |||
2120 | static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) | 2163 | static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) |
2121 | { | 2164 | { |
2122 | struct cfg80211_registered_device *rdev; | 2165 | struct cfg80211_registered_device *rdev; |
@@ -2251,6 +2294,7 @@ static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) | |||
2251 | if (info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX] && | 2294 | if (info->attrs[NL80211_ATTR_WIPHY_ANTENNA_TX] && |
2252 | info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]) { | 2295 | info->attrs[NL80211_ATTR_WIPHY_ANTENNA_RX]) { |
2253 | u32 tx_ant, rx_ant; | 2296 | u32 tx_ant, rx_ant; |
2297 | |||
2254 | if ((!rdev->wiphy.available_antennas_tx && | 2298 | if ((!rdev->wiphy.available_antennas_tx && |
2255 | !rdev->wiphy.available_antennas_rx) || | 2299 | !rdev->wiphy.available_antennas_rx) || |
2256 | !rdev->ops->set_antenna) | 2300 | !rdev->ops->set_antenna) |
@@ -2919,6 +2963,7 @@ static int nl80211_get_key(struct sk_buff *skb, struct genl_info *info) | |||
2919 | pairwise = !!mac_addr; | 2963 | pairwise = !!mac_addr; |
2920 | if (info->attrs[NL80211_ATTR_KEY_TYPE]) { | 2964 | if (info->attrs[NL80211_ATTR_KEY_TYPE]) { |
2921 | u32 kt = nla_get_u32(info->attrs[NL80211_ATTR_KEY_TYPE]); | 2965 | u32 kt = nla_get_u32(info->attrs[NL80211_ATTR_KEY_TYPE]); |
2966 | |||
2922 | if (kt >= NUM_NL80211_KEYTYPES) | 2967 | if (kt >= NUM_NL80211_KEYTYPES) |
2923 | return -EINVAL; | 2968 | return -EINVAL; |
2924 | if (kt != NL80211_KEYTYPE_GROUP && | 2969 | if (kt != NL80211_KEYTYPE_GROUP && |
@@ -3962,7 +4007,6 @@ static int nl80211_dump_station(struct sk_buff *skb, | |||
3962 | sta_idx++; | 4007 | sta_idx++; |
3963 | } | 4008 | } |
3964 | 4009 | ||
3965 | |||
3966 | out: | 4010 | out: |
3967 | cb->args[2] = sta_idx; | 4011 | cb->args[2] = sta_idx; |
3968 | err = skb->len; | 4012 | err = skb->len; |
@@ -4763,7 +4807,6 @@ static int nl80211_dump_mpath(struct sk_buff *skb, | |||
4763 | path_idx++; | 4807 | path_idx++; |
4764 | } | 4808 | } |
4765 | 4809 | ||
4766 | |||
4767 | out: | 4810 | out: |
4768 | cb->args[2] = path_idx; | 4811 | cb->args[2] = path_idx; |
4769 | err = skb->len; | 4812 | err = skb->len; |
@@ -5053,7 +5096,6 @@ static int nl80211_req_set_reg(struct sk_buff *skb, struct genl_info *info) | |||
5053 | enum nl80211_user_reg_hint_type user_reg_hint_type; | 5096 | enum nl80211_user_reg_hint_type user_reg_hint_type; |
5054 | u32 owner_nlportid; | 5097 | u32 owner_nlportid; |
5055 | 5098 | ||
5056 | |||
5057 | /* | 5099 | /* |
5058 | * You should only get this when cfg80211 hasn't yet initialized | 5100 | * You should only get this when cfg80211 hasn't yet initialized |
5059 | * completely when built-in to the kernel right between the time | 5101 | * completely when built-in to the kernel right between the time |
@@ -5262,7 +5304,6 @@ do { \ | |||
5262 | } \ | 5304 | } \ |
5263 | } while (0) | 5305 | } while (0) |
5264 | 5306 | ||
5265 | |||
5266 | if (!info->attrs[NL80211_ATTR_MESH_CONFIG]) | 5307 | if (!info->attrs[NL80211_ATTR_MESH_CONFIG]) |
5267 | return -EINVAL; | 5308 | return -EINVAL; |
5268 | if (nla_parse_nested(tb, NL80211_MESHCONF_ATTR_MAX, | 5309 | if (nla_parse_nested(tb, NL80211_MESHCONF_ATTR_MAX, |
@@ -5409,7 +5450,6 @@ static int nl80211_parse_mesh_setup(struct genl_info *info, | |||
5409 | IEEE80211_PATH_METRIC_VENDOR : | 5450 | IEEE80211_PATH_METRIC_VENDOR : |
5410 | IEEE80211_PATH_METRIC_AIRTIME; | 5451 | IEEE80211_PATH_METRIC_AIRTIME; |
5411 | 5452 | ||
5412 | |||
5413 | if (tb[NL80211_MESH_SETUP_IE]) { | 5453 | if (tb[NL80211_MESH_SETUP_IE]) { |
5414 | struct nlattr *ieattr = | 5454 | struct nlattr *ieattr = |
5415 | tb[NL80211_MESH_SETUP_IE]; | 5455 | tb[NL80211_MESH_SETUP_IE]; |
@@ -5796,10 +5836,8 @@ static int nl80211_set_reg(struct sk_buff *skb, struct genl_info *info) | |||
5796 | } | 5836 | } |
5797 | } | 5837 | } |
5798 | 5838 | ||
5799 | r = set_regdom(rd, REGD_SOURCE_CRDA); | 5839 | /* set_regdom takes ownership of rd */ |
5800 | /* set_regdom took ownership */ | 5840 | return set_regdom(rd, REGD_SOURCE_CRDA); |
5801 | rd = NULL; | ||
5802 | |||
5803 | bad_reg: | 5841 | bad_reg: |
5804 | kfree(rd); | 5842 | kfree(rd); |
5805 | return r; | 5843 | return r; |
@@ -6033,6 +6071,7 @@ static int nl80211_trigger_scan(struct sk_buff *skb, struct genl_info *info) | |||
6033 | /* all channels */ | 6071 | /* all channels */ |
6034 | for (band = 0; band < NUM_NL80211_BANDS; band++) { | 6072 | for (band = 0; band < NUM_NL80211_BANDS; band++) { |
6035 | int j; | 6073 | int j; |
6074 | |||
6036 | if (!wiphy->bands[band]) | 6075 | if (!wiphy->bands[band]) |
6037 | continue; | 6076 | continue; |
6038 | for (j = 0; j < wiphy->bands[band]->n_channels; j++) { | 6077 | for (j = 0; j < wiphy->bands[band]->n_channels; j++) { |
@@ -6442,6 +6481,7 @@ nl80211_parse_sched_scan(struct wiphy *wiphy, struct wireless_dev *wdev, | |||
6442 | /* all channels */ | 6481 | /* all channels */ |
6443 | for (band = 0; band < NUM_NL80211_BANDS; band++) { | 6482 | for (band = 0; band < NUM_NL80211_BANDS; band++) { |
6444 | int j; | 6483 | int j; |
6484 | |||
6445 | if (!wiphy->bands[band]) | 6485 | if (!wiphy->bands[band]) |
6446 | continue; | 6486 | continue; |
6447 | for (j = 0; j < wiphy->bands[band]->n_channels; j++) { | 6487 | for (j = 0; j < wiphy->bands[band]->n_channels; j++) { |
@@ -6511,7 +6551,7 @@ nl80211_parse_sched_scan(struct wiphy *wiphy, struct wireless_dev *wdev, | |||
6511 | nla_data(ssid), nla_len(ssid)); | 6551 | nla_data(ssid), nla_len(ssid)); |
6512 | request->match_sets[i].ssid.ssid_len = | 6552 | request->match_sets[i].ssid.ssid_len = |
6513 | nla_len(ssid); | 6553 | nla_len(ssid); |
6514 | /* special attribute - old implemenation w/a */ | 6554 | /* special attribute - old implementation w/a */ |
6515 | request->match_sets[i].rssi_thold = | 6555 | request->match_sets[i].rssi_thold = |
6516 | default_match_rssi; | 6556 | default_match_rssi; |
6517 | rssi = tb[NL80211_SCHED_SCAN_MATCH_ATTR_RSSI]; | 6557 | rssi = tb[NL80211_SCHED_SCAN_MATCH_ATTR_RSSI]; |
@@ -7204,6 +7244,7 @@ static int nl80211_authenticate(struct sk_buff *skb, struct genl_info *info) | |||
7204 | if (key.idx >= 0) { | 7244 | if (key.idx >= 0) { |
7205 | int i; | 7245 | int i; |
7206 | bool ok = false; | 7246 | bool ok = false; |
7247 | |||
7207 | for (i = 0; i < rdev->wiphy.n_cipher_suites; i++) { | 7248 | for (i = 0; i < rdev->wiphy.n_cipher_suites; i++) { |
7208 | if (key.p.cipher == rdev->wiphy.cipher_suites[i]) { | 7249 | if (key.p.cipher == rdev->wiphy.cipher_suites[i]) { |
7209 | ok = true; | 7250 | ok = true; |
@@ -7282,6 +7323,7 @@ static int nl80211_crypto_settings(struct cfg80211_registered_device *rdev, | |||
7282 | 7323 | ||
7283 | if (info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]) { | 7324 | if (info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]) { |
7284 | u16 proto; | 7325 | u16 proto; |
7326 | |||
7285 | proto = nla_get_u16( | 7327 | proto = nla_get_u16( |
7286 | info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]); | 7328 | info->attrs[NL80211_ATTR_CONTROL_PORT_ETHERTYPE]); |
7287 | settings->control_port_ethertype = cpu_to_be16(proto); | 7329 | settings->control_port_ethertype = cpu_to_be16(proto); |
@@ -8435,6 +8477,7 @@ static u32 rateset_to_mask(struct ieee80211_supported_band *sband, | |||
8435 | for (i = 0; i < rates_len; i++) { | 8477 | for (i = 0; i < rates_len; i++) { |
8436 | int rate = (rates[i] & 0x7f) * 5; | 8478 | int rate = (rates[i] & 0x7f) * 5; |
8437 | int ridx; | 8479 | int ridx; |
8480 | |||
8438 | for (ridx = 0; ridx < sband->n_bitrates; ridx++) { | 8481 | for (ridx = 0; ridx < sband->n_bitrates; ridx++) { |
8439 | struct ieee80211_rate *srate = | 8482 | struct ieee80211_rate *srate = |
8440 | &sband->bitrates[ridx]; | 8483 | &sband->bitrates[ridx]; |
@@ -8743,7 +8786,6 @@ static int nl80211_tx_mgmt(struct sk_buff *skb, struct genl_info *info) | |||
8743 | if (params.wait < NL80211_MIN_REMAIN_ON_CHANNEL_TIME || | 8786 | if (params.wait < NL80211_MIN_REMAIN_ON_CHANNEL_TIME || |
8744 | params.wait > rdev->wiphy.max_remain_on_channel_duration) | 8787 | params.wait > rdev->wiphy.max_remain_on_channel_duration) |
8745 | return -EINVAL; | 8788 | return -EINVAL; |
8746 | |||
8747 | } | 8789 | } |
8748 | 8790 | ||
8749 | params.offchan = info->attrs[NL80211_ATTR_OFFCHANNEL_TX_OK]; | 8791 | params.offchan = info->attrs[NL80211_ATTR_OFFCHANNEL_TX_OK]; |
@@ -10590,7 +10632,6 @@ int cfg80211_vendor_cmd_reply(struct sk_buff *skb) | |||
10590 | } | 10632 | } |
10591 | EXPORT_SYMBOL_GPL(cfg80211_vendor_cmd_reply); | 10633 | EXPORT_SYMBOL_GPL(cfg80211_vendor_cmd_reply); |
10592 | 10634 | ||
10593 | |||
10594 | static int nl80211_set_qos_map(struct sk_buff *skb, | 10635 | static int nl80211_set_qos_map(struct sk_buff *skb, |
10595 | struct genl_info *info) | 10636 | struct genl_info *info) |
10596 | { | 10637 | { |
@@ -10945,7 +10986,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10945 | .cmd = NL80211_CMD_SET_WIPHY, | 10986 | .cmd = NL80211_CMD_SET_WIPHY, |
10946 | .doit = nl80211_set_wiphy, | 10987 | .doit = nl80211_set_wiphy, |
10947 | .policy = nl80211_policy, | 10988 | .policy = nl80211_policy, |
10948 | .flags = GENL_ADMIN_PERM, | 10989 | .flags = GENL_UNS_ADMIN_PERM, |
10949 | .internal_flags = NL80211_FLAG_NEED_RTNL, | 10990 | .internal_flags = NL80211_FLAG_NEED_RTNL, |
10950 | }, | 10991 | }, |
10951 | { | 10992 | { |
@@ -10961,7 +11002,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10961 | .cmd = NL80211_CMD_SET_INTERFACE, | 11002 | .cmd = NL80211_CMD_SET_INTERFACE, |
10962 | .doit = nl80211_set_interface, | 11003 | .doit = nl80211_set_interface, |
10963 | .policy = nl80211_policy, | 11004 | .policy = nl80211_policy, |
10964 | .flags = GENL_ADMIN_PERM, | 11005 | .flags = GENL_UNS_ADMIN_PERM, |
10965 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11006 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
10966 | NL80211_FLAG_NEED_RTNL, | 11007 | NL80211_FLAG_NEED_RTNL, |
10967 | }, | 11008 | }, |
@@ -10969,7 +11010,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10969 | .cmd = NL80211_CMD_NEW_INTERFACE, | 11010 | .cmd = NL80211_CMD_NEW_INTERFACE, |
10970 | .doit = nl80211_new_interface, | 11011 | .doit = nl80211_new_interface, |
10971 | .policy = nl80211_policy, | 11012 | .policy = nl80211_policy, |
10972 | .flags = GENL_ADMIN_PERM, | 11013 | .flags = GENL_UNS_ADMIN_PERM, |
10973 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11014 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
10974 | NL80211_FLAG_NEED_RTNL, | 11015 | NL80211_FLAG_NEED_RTNL, |
10975 | }, | 11016 | }, |
@@ -10977,7 +11018,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10977 | .cmd = NL80211_CMD_DEL_INTERFACE, | 11018 | .cmd = NL80211_CMD_DEL_INTERFACE, |
10978 | .doit = nl80211_del_interface, | 11019 | .doit = nl80211_del_interface, |
10979 | .policy = nl80211_policy, | 11020 | .policy = nl80211_policy, |
10980 | .flags = GENL_ADMIN_PERM, | 11021 | .flags = GENL_UNS_ADMIN_PERM, |
10981 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 11022 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
10982 | NL80211_FLAG_NEED_RTNL, | 11023 | NL80211_FLAG_NEED_RTNL, |
10983 | }, | 11024 | }, |
@@ -10985,7 +11026,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10985 | .cmd = NL80211_CMD_GET_KEY, | 11026 | .cmd = NL80211_CMD_GET_KEY, |
10986 | .doit = nl80211_get_key, | 11027 | .doit = nl80211_get_key, |
10987 | .policy = nl80211_policy, | 11028 | .policy = nl80211_policy, |
10988 | .flags = GENL_ADMIN_PERM, | 11029 | .flags = GENL_UNS_ADMIN_PERM, |
10989 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11030 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
10990 | NL80211_FLAG_NEED_RTNL, | 11031 | NL80211_FLAG_NEED_RTNL, |
10991 | }, | 11032 | }, |
@@ -10993,7 +11034,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
10993 | .cmd = NL80211_CMD_SET_KEY, | 11034 | .cmd = NL80211_CMD_SET_KEY, |
10994 | .doit = nl80211_set_key, | 11035 | .doit = nl80211_set_key, |
10995 | .policy = nl80211_policy, | 11036 | .policy = nl80211_policy, |
10996 | .flags = GENL_ADMIN_PERM, | 11037 | .flags = GENL_UNS_ADMIN_PERM, |
10997 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11038 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
10998 | NL80211_FLAG_NEED_RTNL | | 11039 | NL80211_FLAG_NEED_RTNL | |
10999 | NL80211_FLAG_CLEAR_SKB, | 11040 | NL80211_FLAG_CLEAR_SKB, |
@@ -11002,7 +11043,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11002 | .cmd = NL80211_CMD_NEW_KEY, | 11043 | .cmd = NL80211_CMD_NEW_KEY, |
11003 | .doit = nl80211_new_key, | 11044 | .doit = nl80211_new_key, |
11004 | .policy = nl80211_policy, | 11045 | .policy = nl80211_policy, |
11005 | .flags = GENL_ADMIN_PERM, | 11046 | .flags = GENL_UNS_ADMIN_PERM, |
11006 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11047 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11007 | NL80211_FLAG_NEED_RTNL | | 11048 | NL80211_FLAG_NEED_RTNL | |
11008 | NL80211_FLAG_CLEAR_SKB, | 11049 | NL80211_FLAG_CLEAR_SKB, |
@@ -11011,14 +11052,14 @@ static const struct genl_ops nl80211_ops[] = { | |||
11011 | .cmd = NL80211_CMD_DEL_KEY, | 11052 | .cmd = NL80211_CMD_DEL_KEY, |
11012 | .doit = nl80211_del_key, | 11053 | .doit = nl80211_del_key, |
11013 | .policy = nl80211_policy, | 11054 | .policy = nl80211_policy, |
11014 | .flags = GENL_ADMIN_PERM, | 11055 | .flags = GENL_UNS_ADMIN_PERM, |
11015 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11056 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11016 | NL80211_FLAG_NEED_RTNL, | 11057 | NL80211_FLAG_NEED_RTNL, |
11017 | }, | 11058 | }, |
11018 | { | 11059 | { |
11019 | .cmd = NL80211_CMD_SET_BEACON, | 11060 | .cmd = NL80211_CMD_SET_BEACON, |
11020 | .policy = nl80211_policy, | 11061 | .policy = nl80211_policy, |
11021 | .flags = GENL_ADMIN_PERM, | 11062 | .flags = GENL_UNS_ADMIN_PERM, |
11022 | .doit = nl80211_set_beacon, | 11063 | .doit = nl80211_set_beacon, |
11023 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11064 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11024 | NL80211_FLAG_NEED_RTNL, | 11065 | NL80211_FLAG_NEED_RTNL, |
@@ -11026,7 +11067,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11026 | { | 11067 | { |
11027 | .cmd = NL80211_CMD_START_AP, | 11068 | .cmd = NL80211_CMD_START_AP, |
11028 | .policy = nl80211_policy, | 11069 | .policy = nl80211_policy, |
11029 | .flags = GENL_ADMIN_PERM, | 11070 | .flags = GENL_UNS_ADMIN_PERM, |
11030 | .doit = nl80211_start_ap, | 11071 | .doit = nl80211_start_ap, |
11031 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11072 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11032 | NL80211_FLAG_NEED_RTNL, | 11073 | NL80211_FLAG_NEED_RTNL, |
@@ -11034,7 +11075,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11034 | { | 11075 | { |
11035 | .cmd = NL80211_CMD_STOP_AP, | 11076 | .cmd = NL80211_CMD_STOP_AP, |
11036 | .policy = nl80211_policy, | 11077 | .policy = nl80211_policy, |
11037 | .flags = GENL_ADMIN_PERM, | 11078 | .flags = GENL_UNS_ADMIN_PERM, |
11038 | .doit = nl80211_stop_ap, | 11079 | .doit = nl80211_stop_ap, |
11039 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11080 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11040 | NL80211_FLAG_NEED_RTNL, | 11081 | NL80211_FLAG_NEED_RTNL, |
@@ -11051,7 +11092,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11051 | .cmd = NL80211_CMD_SET_STATION, | 11092 | .cmd = NL80211_CMD_SET_STATION, |
11052 | .doit = nl80211_set_station, | 11093 | .doit = nl80211_set_station, |
11053 | .policy = nl80211_policy, | 11094 | .policy = nl80211_policy, |
11054 | .flags = GENL_ADMIN_PERM, | 11095 | .flags = GENL_UNS_ADMIN_PERM, |
11055 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11096 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11056 | NL80211_FLAG_NEED_RTNL, | 11097 | NL80211_FLAG_NEED_RTNL, |
11057 | }, | 11098 | }, |
@@ -11059,7 +11100,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11059 | .cmd = NL80211_CMD_NEW_STATION, | 11100 | .cmd = NL80211_CMD_NEW_STATION, |
11060 | .doit = nl80211_new_station, | 11101 | .doit = nl80211_new_station, |
11061 | .policy = nl80211_policy, | 11102 | .policy = nl80211_policy, |
11062 | .flags = GENL_ADMIN_PERM, | 11103 | .flags = GENL_UNS_ADMIN_PERM, |
11063 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11104 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11064 | NL80211_FLAG_NEED_RTNL, | 11105 | NL80211_FLAG_NEED_RTNL, |
11065 | }, | 11106 | }, |
@@ -11067,7 +11108,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11067 | .cmd = NL80211_CMD_DEL_STATION, | 11108 | .cmd = NL80211_CMD_DEL_STATION, |
11068 | .doit = nl80211_del_station, | 11109 | .doit = nl80211_del_station, |
11069 | .policy = nl80211_policy, | 11110 | .policy = nl80211_policy, |
11070 | .flags = GENL_ADMIN_PERM, | 11111 | .flags = GENL_UNS_ADMIN_PERM, |
11071 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11112 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11072 | NL80211_FLAG_NEED_RTNL, | 11113 | NL80211_FLAG_NEED_RTNL, |
11073 | }, | 11114 | }, |
@@ -11076,7 +11117,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11076 | .doit = nl80211_get_mpath, | 11117 | .doit = nl80211_get_mpath, |
11077 | .dumpit = nl80211_dump_mpath, | 11118 | .dumpit = nl80211_dump_mpath, |
11078 | .policy = nl80211_policy, | 11119 | .policy = nl80211_policy, |
11079 | .flags = GENL_ADMIN_PERM, | 11120 | .flags = GENL_UNS_ADMIN_PERM, |
11080 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11121 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11081 | NL80211_FLAG_NEED_RTNL, | 11122 | NL80211_FLAG_NEED_RTNL, |
11082 | }, | 11123 | }, |
@@ -11085,7 +11126,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11085 | .doit = nl80211_get_mpp, | 11126 | .doit = nl80211_get_mpp, |
11086 | .dumpit = nl80211_dump_mpp, | 11127 | .dumpit = nl80211_dump_mpp, |
11087 | .policy = nl80211_policy, | 11128 | .policy = nl80211_policy, |
11088 | .flags = GENL_ADMIN_PERM, | 11129 | .flags = GENL_UNS_ADMIN_PERM, |
11089 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11130 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11090 | NL80211_FLAG_NEED_RTNL, | 11131 | NL80211_FLAG_NEED_RTNL, |
11091 | }, | 11132 | }, |
@@ -11093,7 +11134,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11093 | .cmd = NL80211_CMD_SET_MPATH, | 11134 | .cmd = NL80211_CMD_SET_MPATH, |
11094 | .doit = nl80211_set_mpath, | 11135 | .doit = nl80211_set_mpath, |
11095 | .policy = nl80211_policy, | 11136 | .policy = nl80211_policy, |
11096 | .flags = GENL_ADMIN_PERM, | 11137 | .flags = GENL_UNS_ADMIN_PERM, |
11097 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11138 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11098 | NL80211_FLAG_NEED_RTNL, | 11139 | NL80211_FLAG_NEED_RTNL, |
11099 | }, | 11140 | }, |
@@ -11101,7 +11142,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11101 | .cmd = NL80211_CMD_NEW_MPATH, | 11142 | .cmd = NL80211_CMD_NEW_MPATH, |
11102 | .doit = nl80211_new_mpath, | 11143 | .doit = nl80211_new_mpath, |
11103 | .policy = nl80211_policy, | 11144 | .policy = nl80211_policy, |
11104 | .flags = GENL_ADMIN_PERM, | 11145 | .flags = GENL_UNS_ADMIN_PERM, |
11105 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11146 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11106 | NL80211_FLAG_NEED_RTNL, | 11147 | NL80211_FLAG_NEED_RTNL, |
11107 | }, | 11148 | }, |
@@ -11109,7 +11150,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11109 | .cmd = NL80211_CMD_DEL_MPATH, | 11150 | .cmd = NL80211_CMD_DEL_MPATH, |
11110 | .doit = nl80211_del_mpath, | 11151 | .doit = nl80211_del_mpath, |
11111 | .policy = nl80211_policy, | 11152 | .policy = nl80211_policy, |
11112 | .flags = GENL_ADMIN_PERM, | 11153 | .flags = GENL_UNS_ADMIN_PERM, |
11113 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11154 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11114 | NL80211_FLAG_NEED_RTNL, | 11155 | NL80211_FLAG_NEED_RTNL, |
11115 | }, | 11156 | }, |
@@ -11117,7 +11158,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11117 | .cmd = NL80211_CMD_SET_BSS, | 11158 | .cmd = NL80211_CMD_SET_BSS, |
11118 | .doit = nl80211_set_bss, | 11159 | .doit = nl80211_set_bss, |
11119 | .policy = nl80211_policy, | 11160 | .policy = nl80211_policy, |
11120 | .flags = GENL_ADMIN_PERM, | 11161 | .flags = GENL_UNS_ADMIN_PERM, |
11121 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11162 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11122 | NL80211_FLAG_NEED_RTNL, | 11163 | NL80211_FLAG_NEED_RTNL, |
11123 | }, | 11164 | }, |
@@ -11156,7 +11197,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11156 | .cmd = NL80211_CMD_SET_MESH_CONFIG, | 11197 | .cmd = NL80211_CMD_SET_MESH_CONFIG, |
11157 | .doit = nl80211_update_mesh_config, | 11198 | .doit = nl80211_update_mesh_config, |
11158 | .policy = nl80211_policy, | 11199 | .policy = nl80211_policy, |
11159 | .flags = GENL_ADMIN_PERM, | 11200 | .flags = GENL_UNS_ADMIN_PERM, |
11160 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11201 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11161 | NL80211_FLAG_NEED_RTNL, | 11202 | NL80211_FLAG_NEED_RTNL, |
11162 | }, | 11203 | }, |
@@ -11164,7 +11205,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11164 | .cmd = NL80211_CMD_TRIGGER_SCAN, | 11205 | .cmd = NL80211_CMD_TRIGGER_SCAN, |
11165 | .doit = nl80211_trigger_scan, | 11206 | .doit = nl80211_trigger_scan, |
11166 | .policy = nl80211_policy, | 11207 | .policy = nl80211_policy, |
11167 | .flags = GENL_ADMIN_PERM, | 11208 | .flags = GENL_UNS_ADMIN_PERM, |
11168 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11209 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11169 | NL80211_FLAG_NEED_RTNL, | 11210 | NL80211_FLAG_NEED_RTNL, |
11170 | }, | 11211 | }, |
@@ -11172,7 +11213,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11172 | .cmd = NL80211_CMD_ABORT_SCAN, | 11213 | .cmd = NL80211_CMD_ABORT_SCAN, |
11173 | .doit = nl80211_abort_scan, | 11214 | .doit = nl80211_abort_scan, |
11174 | .policy = nl80211_policy, | 11215 | .policy = nl80211_policy, |
11175 | .flags = GENL_ADMIN_PERM, | 11216 | .flags = GENL_UNS_ADMIN_PERM, |
11176 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11217 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11177 | NL80211_FLAG_NEED_RTNL, | 11218 | NL80211_FLAG_NEED_RTNL, |
11178 | }, | 11219 | }, |
@@ -11185,7 +11226,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11185 | .cmd = NL80211_CMD_START_SCHED_SCAN, | 11226 | .cmd = NL80211_CMD_START_SCHED_SCAN, |
11186 | .doit = nl80211_start_sched_scan, | 11227 | .doit = nl80211_start_sched_scan, |
11187 | .policy = nl80211_policy, | 11228 | .policy = nl80211_policy, |
11188 | .flags = GENL_ADMIN_PERM, | 11229 | .flags = GENL_UNS_ADMIN_PERM, |
11189 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11230 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11190 | NL80211_FLAG_NEED_RTNL, | 11231 | NL80211_FLAG_NEED_RTNL, |
11191 | }, | 11232 | }, |
@@ -11193,7 +11234,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11193 | .cmd = NL80211_CMD_STOP_SCHED_SCAN, | 11234 | .cmd = NL80211_CMD_STOP_SCHED_SCAN, |
11194 | .doit = nl80211_stop_sched_scan, | 11235 | .doit = nl80211_stop_sched_scan, |
11195 | .policy = nl80211_policy, | 11236 | .policy = nl80211_policy, |
11196 | .flags = GENL_ADMIN_PERM, | 11237 | .flags = GENL_UNS_ADMIN_PERM, |
11197 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11238 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11198 | NL80211_FLAG_NEED_RTNL, | 11239 | NL80211_FLAG_NEED_RTNL, |
11199 | }, | 11240 | }, |
@@ -11201,7 +11242,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11201 | .cmd = NL80211_CMD_AUTHENTICATE, | 11242 | .cmd = NL80211_CMD_AUTHENTICATE, |
11202 | .doit = nl80211_authenticate, | 11243 | .doit = nl80211_authenticate, |
11203 | .policy = nl80211_policy, | 11244 | .policy = nl80211_policy, |
11204 | .flags = GENL_ADMIN_PERM, | 11245 | .flags = GENL_UNS_ADMIN_PERM, |
11205 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11246 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11206 | NL80211_FLAG_NEED_RTNL | | 11247 | NL80211_FLAG_NEED_RTNL | |
11207 | NL80211_FLAG_CLEAR_SKB, | 11248 | NL80211_FLAG_CLEAR_SKB, |
@@ -11210,7 +11251,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11210 | .cmd = NL80211_CMD_ASSOCIATE, | 11251 | .cmd = NL80211_CMD_ASSOCIATE, |
11211 | .doit = nl80211_associate, | 11252 | .doit = nl80211_associate, |
11212 | .policy = nl80211_policy, | 11253 | .policy = nl80211_policy, |
11213 | .flags = GENL_ADMIN_PERM, | 11254 | .flags = GENL_UNS_ADMIN_PERM, |
11214 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11255 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11215 | NL80211_FLAG_NEED_RTNL, | 11256 | NL80211_FLAG_NEED_RTNL, |
11216 | }, | 11257 | }, |
@@ -11218,7 +11259,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11218 | .cmd = NL80211_CMD_DEAUTHENTICATE, | 11259 | .cmd = NL80211_CMD_DEAUTHENTICATE, |
11219 | .doit = nl80211_deauthenticate, | 11260 | .doit = nl80211_deauthenticate, |
11220 | .policy = nl80211_policy, | 11261 | .policy = nl80211_policy, |
11221 | .flags = GENL_ADMIN_PERM, | 11262 | .flags = GENL_UNS_ADMIN_PERM, |
11222 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11263 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11223 | NL80211_FLAG_NEED_RTNL, | 11264 | NL80211_FLAG_NEED_RTNL, |
11224 | }, | 11265 | }, |
@@ -11226,7 +11267,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11226 | .cmd = NL80211_CMD_DISASSOCIATE, | 11267 | .cmd = NL80211_CMD_DISASSOCIATE, |
11227 | .doit = nl80211_disassociate, | 11268 | .doit = nl80211_disassociate, |
11228 | .policy = nl80211_policy, | 11269 | .policy = nl80211_policy, |
11229 | .flags = GENL_ADMIN_PERM, | 11270 | .flags = GENL_UNS_ADMIN_PERM, |
11230 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11271 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11231 | NL80211_FLAG_NEED_RTNL, | 11272 | NL80211_FLAG_NEED_RTNL, |
11232 | }, | 11273 | }, |
@@ -11234,7 +11275,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11234 | .cmd = NL80211_CMD_JOIN_IBSS, | 11275 | .cmd = NL80211_CMD_JOIN_IBSS, |
11235 | .doit = nl80211_join_ibss, | 11276 | .doit = nl80211_join_ibss, |
11236 | .policy = nl80211_policy, | 11277 | .policy = nl80211_policy, |
11237 | .flags = GENL_ADMIN_PERM, | 11278 | .flags = GENL_UNS_ADMIN_PERM, |
11238 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11279 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11239 | NL80211_FLAG_NEED_RTNL, | 11280 | NL80211_FLAG_NEED_RTNL, |
11240 | }, | 11281 | }, |
@@ -11242,7 +11283,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11242 | .cmd = NL80211_CMD_LEAVE_IBSS, | 11283 | .cmd = NL80211_CMD_LEAVE_IBSS, |
11243 | .doit = nl80211_leave_ibss, | 11284 | .doit = nl80211_leave_ibss, |
11244 | .policy = nl80211_policy, | 11285 | .policy = nl80211_policy, |
11245 | .flags = GENL_ADMIN_PERM, | 11286 | .flags = GENL_UNS_ADMIN_PERM, |
11246 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11287 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11247 | NL80211_FLAG_NEED_RTNL, | 11288 | NL80211_FLAG_NEED_RTNL, |
11248 | }, | 11289 | }, |
@@ -11252,7 +11293,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11252 | .doit = nl80211_testmode_do, | 11293 | .doit = nl80211_testmode_do, |
11253 | .dumpit = nl80211_testmode_dump, | 11294 | .dumpit = nl80211_testmode_dump, |
11254 | .policy = nl80211_policy, | 11295 | .policy = nl80211_policy, |
11255 | .flags = GENL_ADMIN_PERM, | 11296 | .flags = GENL_UNS_ADMIN_PERM, |
11256 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11297 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11257 | NL80211_FLAG_NEED_RTNL, | 11298 | NL80211_FLAG_NEED_RTNL, |
11258 | }, | 11299 | }, |
@@ -11261,7 +11302,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11261 | .cmd = NL80211_CMD_CONNECT, | 11302 | .cmd = NL80211_CMD_CONNECT, |
11262 | .doit = nl80211_connect, | 11303 | .doit = nl80211_connect, |
11263 | .policy = nl80211_policy, | 11304 | .policy = nl80211_policy, |
11264 | .flags = GENL_ADMIN_PERM, | 11305 | .flags = GENL_UNS_ADMIN_PERM, |
11265 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11306 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11266 | NL80211_FLAG_NEED_RTNL, | 11307 | NL80211_FLAG_NEED_RTNL, |
11267 | }, | 11308 | }, |
@@ -11269,7 +11310,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11269 | .cmd = NL80211_CMD_DISCONNECT, | 11310 | .cmd = NL80211_CMD_DISCONNECT, |
11270 | .doit = nl80211_disconnect, | 11311 | .doit = nl80211_disconnect, |
11271 | .policy = nl80211_policy, | 11312 | .policy = nl80211_policy, |
11272 | .flags = GENL_ADMIN_PERM, | 11313 | .flags = GENL_UNS_ADMIN_PERM, |
11273 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11314 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11274 | NL80211_FLAG_NEED_RTNL, | 11315 | NL80211_FLAG_NEED_RTNL, |
11275 | }, | 11316 | }, |
@@ -11277,7 +11318,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11277 | .cmd = NL80211_CMD_SET_WIPHY_NETNS, | 11318 | .cmd = NL80211_CMD_SET_WIPHY_NETNS, |
11278 | .doit = nl80211_wiphy_netns, | 11319 | .doit = nl80211_wiphy_netns, |
11279 | .policy = nl80211_policy, | 11320 | .policy = nl80211_policy, |
11280 | .flags = GENL_ADMIN_PERM, | 11321 | .flags = GENL_UNS_ADMIN_PERM, |
11281 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11322 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11282 | NL80211_FLAG_NEED_RTNL, | 11323 | NL80211_FLAG_NEED_RTNL, |
11283 | }, | 11324 | }, |
@@ -11290,7 +11331,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11290 | .cmd = NL80211_CMD_SET_PMKSA, | 11331 | .cmd = NL80211_CMD_SET_PMKSA, |
11291 | .doit = nl80211_setdel_pmksa, | 11332 | .doit = nl80211_setdel_pmksa, |
11292 | .policy = nl80211_policy, | 11333 | .policy = nl80211_policy, |
11293 | .flags = GENL_ADMIN_PERM, | 11334 | .flags = GENL_UNS_ADMIN_PERM, |
11294 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11335 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11295 | NL80211_FLAG_NEED_RTNL, | 11336 | NL80211_FLAG_NEED_RTNL, |
11296 | }, | 11337 | }, |
@@ -11298,7 +11339,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11298 | .cmd = NL80211_CMD_DEL_PMKSA, | 11339 | .cmd = NL80211_CMD_DEL_PMKSA, |
11299 | .doit = nl80211_setdel_pmksa, | 11340 | .doit = nl80211_setdel_pmksa, |
11300 | .policy = nl80211_policy, | 11341 | .policy = nl80211_policy, |
11301 | .flags = GENL_ADMIN_PERM, | 11342 | .flags = GENL_UNS_ADMIN_PERM, |
11302 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11343 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11303 | NL80211_FLAG_NEED_RTNL, | 11344 | NL80211_FLAG_NEED_RTNL, |
11304 | }, | 11345 | }, |
@@ -11306,7 +11347,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11306 | .cmd = NL80211_CMD_FLUSH_PMKSA, | 11347 | .cmd = NL80211_CMD_FLUSH_PMKSA, |
11307 | .doit = nl80211_flush_pmksa, | 11348 | .doit = nl80211_flush_pmksa, |
11308 | .policy = nl80211_policy, | 11349 | .policy = nl80211_policy, |
11309 | .flags = GENL_ADMIN_PERM, | 11350 | .flags = GENL_UNS_ADMIN_PERM, |
11310 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11351 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11311 | NL80211_FLAG_NEED_RTNL, | 11352 | NL80211_FLAG_NEED_RTNL, |
11312 | }, | 11353 | }, |
@@ -11314,7 +11355,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11314 | .cmd = NL80211_CMD_REMAIN_ON_CHANNEL, | 11355 | .cmd = NL80211_CMD_REMAIN_ON_CHANNEL, |
11315 | .doit = nl80211_remain_on_channel, | 11356 | .doit = nl80211_remain_on_channel, |
11316 | .policy = nl80211_policy, | 11357 | .policy = nl80211_policy, |
11317 | .flags = GENL_ADMIN_PERM, | 11358 | .flags = GENL_UNS_ADMIN_PERM, |
11318 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11359 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11319 | NL80211_FLAG_NEED_RTNL, | 11360 | NL80211_FLAG_NEED_RTNL, |
11320 | }, | 11361 | }, |
@@ -11322,7 +11363,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11322 | .cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, | 11363 | .cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, |
11323 | .doit = nl80211_cancel_remain_on_channel, | 11364 | .doit = nl80211_cancel_remain_on_channel, |
11324 | .policy = nl80211_policy, | 11365 | .policy = nl80211_policy, |
11325 | .flags = GENL_ADMIN_PERM, | 11366 | .flags = GENL_UNS_ADMIN_PERM, |
11326 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11367 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11327 | NL80211_FLAG_NEED_RTNL, | 11368 | NL80211_FLAG_NEED_RTNL, |
11328 | }, | 11369 | }, |
@@ -11330,7 +11371,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11330 | .cmd = NL80211_CMD_SET_TX_BITRATE_MASK, | 11371 | .cmd = NL80211_CMD_SET_TX_BITRATE_MASK, |
11331 | .doit = nl80211_set_tx_bitrate_mask, | 11372 | .doit = nl80211_set_tx_bitrate_mask, |
11332 | .policy = nl80211_policy, | 11373 | .policy = nl80211_policy, |
11333 | .flags = GENL_ADMIN_PERM, | 11374 | .flags = GENL_UNS_ADMIN_PERM, |
11334 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11375 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11335 | NL80211_FLAG_NEED_RTNL, | 11376 | NL80211_FLAG_NEED_RTNL, |
11336 | }, | 11377 | }, |
@@ -11338,7 +11379,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11338 | .cmd = NL80211_CMD_REGISTER_FRAME, | 11379 | .cmd = NL80211_CMD_REGISTER_FRAME, |
11339 | .doit = nl80211_register_mgmt, | 11380 | .doit = nl80211_register_mgmt, |
11340 | .policy = nl80211_policy, | 11381 | .policy = nl80211_policy, |
11341 | .flags = GENL_ADMIN_PERM, | 11382 | .flags = GENL_UNS_ADMIN_PERM, |
11342 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 11383 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
11343 | NL80211_FLAG_NEED_RTNL, | 11384 | NL80211_FLAG_NEED_RTNL, |
11344 | }, | 11385 | }, |
@@ -11346,7 +11387,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11346 | .cmd = NL80211_CMD_FRAME, | 11387 | .cmd = NL80211_CMD_FRAME, |
11347 | .doit = nl80211_tx_mgmt, | 11388 | .doit = nl80211_tx_mgmt, |
11348 | .policy = nl80211_policy, | 11389 | .policy = nl80211_policy, |
11349 | .flags = GENL_ADMIN_PERM, | 11390 | .flags = GENL_UNS_ADMIN_PERM, |
11350 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11391 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11351 | NL80211_FLAG_NEED_RTNL, | 11392 | NL80211_FLAG_NEED_RTNL, |
11352 | }, | 11393 | }, |
@@ -11354,7 +11395,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11354 | .cmd = NL80211_CMD_FRAME_WAIT_CANCEL, | 11395 | .cmd = NL80211_CMD_FRAME_WAIT_CANCEL, |
11355 | .doit = nl80211_tx_mgmt_cancel_wait, | 11396 | .doit = nl80211_tx_mgmt_cancel_wait, |
11356 | .policy = nl80211_policy, | 11397 | .policy = nl80211_policy, |
11357 | .flags = GENL_ADMIN_PERM, | 11398 | .flags = GENL_UNS_ADMIN_PERM, |
11358 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11399 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11359 | NL80211_FLAG_NEED_RTNL, | 11400 | NL80211_FLAG_NEED_RTNL, |
11360 | }, | 11401 | }, |
@@ -11362,7 +11403,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11362 | .cmd = NL80211_CMD_SET_POWER_SAVE, | 11403 | .cmd = NL80211_CMD_SET_POWER_SAVE, |
11363 | .doit = nl80211_set_power_save, | 11404 | .doit = nl80211_set_power_save, |
11364 | .policy = nl80211_policy, | 11405 | .policy = nl80211_policy, |
11365 | .flags = GENL_ADMIN_PERM, | 11406 | .flags = GENL_UNS_ADMIN_PERM, |
11366 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11407 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11367 | NL80211_FLAG_NEED_RTNL, | 11408 | NL80211_FLAG_NEED_RTNL, |
11368 | }, | 11409 | }, |
@@ -11378,7 +11419,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11378 | .cmd = NL80211_CMD_SET_CQM, | 11419 | .cmd = NL80211_CMD_SET_CQM, |
11379 | .doit = nl80211_set_cqm, | 11420 | .doit = nl80211_set_cqm, |
11380 | .policy = nl80211_policy, | 11421 | .policy = nl80211_policy, |
11381 | .flags = GENL_ADMIN_PERM, | 11422 | .flags = GENL_UNS_ADMIN_PERM, |
11382 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11423 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11383 | NL80211_FLAG_NEED_RTNL, | 11424 | NL80211_FLAG_NEED_RTNL, |
11384 | }, | 11425 | }, |
@@ -11386,7 +11427,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11386 | .cmd = NL80211_CMD_SET_CHANNEL, | 11427 | .cmd = NL80211_CMD_SET_CHANNEL, |
11387 | .doit = nl80211_set_channel, | 11428 | .doit = nl80211_set_channel, |
11388 | .policy = nl80211_policy, | 11429 | .policy = nl80211_policy, |
11389 | .flags = GENL_ADMIN_PERM, | 11430 | .flags = GENL_UNS_ADMIN_PERM, |
11390 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11431 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11391 | NL80211_FLAG_NEED_RTNL, | 11432 | NL80211_FLAG_NEED_RTNL, |
11392 | }, | 11433 | }, |
@@ -11394,7 +11435,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11394 | .cmd = NL80211_CMD_SET_WDS_PEER, | 11435 | .cmd = NL80211_CMD_SET_WDS_PEER, |
11395 | .doit = nl80211_set_wds_peer, | 11436 | .doit = nl80211_set_wds_peer, |
11396 | .policy = nl80211_policy, | 11437 | .policy = nl80211_policy, |
11397 | .flags = GENL_ADMIN_PERM, | 11438 | .flags = GENL_UNS_ADMIN_PERM, |
11398 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11439 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11399 | NL80211_FLAG_NEED_RTNL, | 11440 | NL80211_FLAG_NEED_RTNL, |
11400 | }, | 11441 | }, |
@@ -11402,7 +11443,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11402 | .cmd = NL80211_CMD_JOIN_MESH, | 11443 | .cmd = NL80211_CMD_JOIN_MESH, |
11403 | .doit = nl80211_join_mesh, | 11444 | .doit = nl80211_join_mesh, |
11404 | .policy = nl80211_policy, | 11445 | .policy = nl80211_policy, |
11405 | .flags = GENL_ADMIN_PERM, | 11446 | .flags = GENL_UNS_ADMIN_PERM, |
11406 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11447 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11407 | NL80211_FLAG_NEED_RTNL, | 11448 | NL80211_FLAG_NEED_RTNL, |
11408 | }, | 11449 | }, |
@@ -11410,7 +11451,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11410 | .cmd = NL80211_CMD_LEAVE_MESH, | 11451 | .cmd = NL80211_CMD_LEAVE_MESH, |
11411 | .doit = nl80211_leave_mesh, | 11452 | .doit = nl80211_leave_mesh, |
11412 | .policy = nl80211_policy, | 11453 | .policy = nl80211_policy, |
11413 | .flags = GENL_ADMIN_PERM, | 11454 | .flags = GENL_UNS_ADMIN_PERM, |
11414 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11455 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11415 | NL80211_FLAG_NEED_RTNL, | 11456 | NL80211_FLAG_NEED_RTNL, |
11416 | }, | 11457 | }, |
@@ -11418,7 +11459,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11418 | .cmd = NL80211_CMD_JOIN_OCB, | 11459 | .cmd = NL80211_CMD_JOIN_OCB, |
11419 | .doit = nl80211_join_ocb, | 11460 | .doit = nl80211_join_ocb, |
11420 | .policy = nl80211_policy, | 11461 | .policy = nl80211_policy, |
11421 | .flags = GENL_ADMIN_PERM, | 11462 | .flags = GENL_UNS_ADMIN_PERM, |
11422 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11463 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11423 | NL80211_FLAG_NEED_RTNL, | 11464 | NL80211_FLAG_NEED_RTNL, |
11424 | }, | 11465 | }, |
@@ -11426,7 +11467,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11426 | .cmd = NL80211_CMD_LEAVE_OCB, | 11467 | .cmd = NL80211_CMD_LEAVE_OCB, |
11427 | .doit = nl80211_leave_ocb, | 11468 | .doit = nl80211_leave_ocb, |
11428 | .policy = nl80211_policy, | 11469 | .policy = nl80211_policy, |
11429 | .flags = GENL_ADMIN_PERM, | 11470 | .flags = GENL_UNS_ADMIN_PERM, |
11430 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11471 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11431 | NL80211_FLAG_NEED_RTNL, | 11472 | NL80211_FLAG_NEED_RTNL, |
11432 | }, | 11473 | }, |
@@ -11443,7 +11484,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11443 | .cmd = NL80211_CMD_SET_WOWLAN, | 11484 | .cmd = NL80211_CMD_SET_WOWLAN, |
11444 | .doit = nl80211_set_wowlan, | 11485 | .doit = nl80211_set_wowlan, |
11445 | .policy = nl80211_policy, | 11486 | .policy = nl80211_policy, |
11446 | .flags = GENL_ADMIN_PERM, | 11487 | .flags = GENL_UNS_ADMIN_PERM, |
11447 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11488 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11448 | NL80211_FLAG_NEED_RTNL, | 11489 | NL80211_FLAG_NEED_RTNL, |
11449 | }, | 11490 | }, |
@@ -11452,7 +11493,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11452 | .cmd = NL80211_CMD_SET_REKEY_OFFLOAD, | 11493 | .cmd = NL80211_CMD_SET_REKEY_OFFLOAD, |
11453 | .doit = nl80211_set_rekey_data, | 11494 | .doit = nl80211_set_rekey_data, |
11454 | .policy = nl80211_policy, | 11495 | .policy = nl80211_policy, |
11455 | .flags = GENL_ADMIN_PERM, | 11496 | .flags = GENL_UNS_ADMIN_PERM, |
11456 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11497 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11457 | NL80211_FLAG_NEED_RTNL | | 11498 | NL80211_FLAG_NEED_RTNL | |
11458 | NL80211_FLAG_CLEAR_SKB, | 11499 | NL80211_FLAG_CLEAR_SKB, |
@@ -11461,7 +11502,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11461 | .cmd = NL80211_CMD_TDLS_MGMT, | 11502 | .cmd = NL80211_CMD_TDLS_MGMT, |
11462 | .doit = nl80211_tdls_mgmt, | 11503 | .doit = nl80211_tdls_mgmt, |
11463 | .policy = nl80211_policy, | 11504 | .policy = nl80211_policy, |
11464 | .flags = GENL_ADMIN_PERM, | 11505 | .flags = GENL_UNS_ADMIN_PERM, |
11465 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11506 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11466 | NL80211_FLAG_NEED_RTNL, | 11507 | NL80211_FLAG_NEED_RTNL, |
11467 | }, | 11508 | }, |
@@ -11469,7 +11510,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11469 | .cmd = NL80211_CMD_TDLS_OPER, | 11510 | .cmd = NL80211_CMD_TDLS_OPER, |
11470 | .doit = nl80211_tdls_oper, | 11511 | .doit = nl80211_tdls_oper, |
11471 | .policy = nl80211_policy, | 11512 | .policy = nl80211_policy, |
11472 | .flags = GENL_ADMIN_PERM, | 11513 | .flags = GENL_UNS_ADMIN_PERM, |
11473 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11514 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11474 | NL80211_FLAG_NEED_RTNL, | 11515 | NL80211_FLAG_NEED_RTNL, |
11475 | }, | 11516 | }, |
@@ -11477,7 +11518,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11477 | .cmd = NL80211_CMD_UNEXPECTED_FRAME, | 11518 | .cmd = NL80211_CMD_UNEXPECTED_FRAME, |
11478 | .doit = nl80211_register_unexpected_frame, | 11519 | .doit = nl80211_register_unexpected_frame, |
11479 | .policy = nl80211_policy, | 11520 | .policy = nl80211_policy, |
11480 | .flags = GENL_ADMIN_PERM, | 11521 | .flags = GENL_UNS_ADMIN_PERM, |
11481 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11522 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11482 | NL80211_FLAG_NEED_RTNL, | 11523 | NL80211_FLAG_NEED_RTNL, |
11483 | }, | 11524 | }, |
@@ -11485,7 +11526,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11485 | .cmd = NL80211_CMD_PROBE_CLIENT, | 11526 | .cmd = NL80211_CMD_PROBE_CLIENT, |
11486 | .doit = nl80211_probe_client, | 11527 | .doit = nl80211_probe_client, |
11487 | .policy = nl80211_policy, | 11528 | .policy = nl80211_policy, |
11488 | .flags = GENL_ADMIN_PERM, | 11529 | .flags = GENL_UNS_ADMIN_PERM, |
11489 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11530 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11490 | NL80211_FLAG_NEED_RTNL, | 11531 | NL80211_FLAG_NEED_RTNL, |
11491 | }, | 11532 | }, |
@@ -11493,7 +11534,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11493 | .cmd = NL80211_CMD_REGISTER_BEACONS, | 11534 | .cmd = NL80211_CMD_REGISTER_BEACONS, |
11494 | .doit = nl80211_register_beacons, | 11535 | .doit = nl80211_register_beacons, |
11495 | .policy = nl80211_policy, | 11536 | .policy = nl80211_policy, |
11496 | .flags = GENL_ADMIN_PERM, | 11537 | .flags = GENL_UNS_ADMIN_PERM, |
11497 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11538 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11498 | NL80211_FLAG_NEED_RTNL, | 11539 | NL80211_FLAG_NEED_RTNL, |
11499 | }, | 11540 | }, |
@@ -11501,7 +11542,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11501 | .cmd = NL80211_CMD_SET_NOACK_MAP, | 11542 | .cmd = NL80211_CMD_SET_NOACK_MAP, |
11502 | .doit = nl80211_set_noack_map, | 11543 | .doit = nl80211_set_noack_map, |
11503 | .policy = nl80211_policy, | 11544 | .policy = nl80211_policy, |
11504 | .flags = GENL_ADMIN_PERM, | 11545 | .flags = GENL_UNS_ADMIN_PERM, |
11505 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11546 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11506 | NL80211_FLAG_NEED_RTNL, | 11547 | NL80211_FLAG_NEED_RTNL, |
11507 | }, | 11548 | }, |
@@ -11509,7 +11550,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11509 | .cmd = NL80211_CMD_START_P2P_DEVICE, | 11550 | .cmd = NL80211_CMD_START_P2P_DEVICE, |
11510 | .doit = nl80211_start_p2p_device, | 11551 | .doit = nl80211_start_p2p_device, |
11511 | .policy = nl80211_policy, | 11552 | .policy = nl80211_policy, |
11512 | .flags = GENL_ADMIN_PERM, | 11553 | .flags = GENL_UNS_ADMIN_PERM, |
11513 | .internal_flags = NL80211_FLAG_NEED_WDEV | | 11554 | .internal_flags = NL80211_FLAG_NEED_WDEV | |
11514 | NL80211_FLAG_NEED_RTNL, | 11555 | NL80211_FLAG_NEED_RTNL, |
11515 | }, | 11556 | }, |
@@ -11517,7 +11558,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11517 | .cmd = NL80211_CMD_STOP_P2P_DEVICE, | 11558 | .cmd = NL80211_CMD_STOP_P2P_DEVICE, |
11518 | .doit = nl80211_stop_p2p_device, | 11559 | .doit = nl80211_stop_p2p_device, |
11519 | .policy = nl80211_policy, | 11560 | .policy = nl80211_policy, |
11520 | .flags = GENL_ADMIN_PERM, | 11561 | .flags = GENL_UNS_ADMIN_PERM, |
11521 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11562 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11522 | NL80211_FLAG_NEED_RTNL, | 11563 | NL80211_FLAG_NEED_RTNL, |
11523 | }, | 11564 | }, |
@@ -11525,7 +11566,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11525 | .cmd = NL80211_CMD_SET_MCAST_RATE, | 11566 | .cmd = NL80211_CMD_SET_MCAST_RATE, |
11526 | .doit = nl80211_set_mcast_rate, | 11567 | .doit = nl80211_set_mcast_rate, |
11527 | .policy = nl80211_policy, | 11568 | .policy = nl80211_policy, |
11528 | .flags = GENL_ADMIN_PERM, | 11569 | .flags = GENL_UNS_ADMIN_PERM, |
11529 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11570 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11530 | NL80211_FLAG_NEED_RTNL, | 11571 | NL80211_FLAG_NEED_RTNL, |
11531 | }, | 11572 | }, |
@@ -11533,7 +11574,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11533 | .cmd = NL80211_CMD_SET_MAC_ACL, | 11574 | .cmd = NL80211_CMD_SET_MAC_ACL, |
11534 | .doit = nl80211_set_mac_acl, | 11575 | .doit = nl80211_set_mac_acl, |
11535 | .policy = nl80211_policy, | 11576 | .policy = nl80211_policy, |
11536 | .flags = GENL_ADMIN_PERM, | 11577 | .flags = GENL_UNS_ADMIN_PERM, |
11537 | .internal_flags = NL80211_FLAG_NEED_NETDEV | | 11578 | .internal_flags = NL80211_FLAG_NEED_NETDEV | |
11538 | NL80211_FLAG_NEED_RTNL, | 11579 | NL80211_FLAG_NEED_RTNL, |
11539 | }, | 11580 | }, |
@@ -11541,7 +11582,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11541 | .cmd = NL80211_CMD_RADAR_DETECT, | 11582 | .cmd = NL80211_CMD_RADAR_DETECT, |
11542 | .doit = nl80211_start_radar_detection, | 11583 | .doit = nl80211_start_radar_detection, |
11543 | .policy = nl80211_policy, | 11584 | .policy = nl80211_policy, |
11544 | .flags = GENL_ADMIN_PERM, | 11585 | .flags = GENL_UNS_ADMIN_PERM, |
11545 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11586 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11546 | NL80211_FLAG_NEED_RTNL, | 11587 | NL80211_FLAG_NEED_RTNL, |
11547 | }, | 11588 | }, |
@@ -11554,7 +11595,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11554 | .cmd = NL80211_CMD_UPDATE_FT_IES, | 11595 | .cmd = NL80211_CMD_UPDATE_FT_IES, |
11555 | .doit = nl80211_update_ft_ies, | 11596 | .doit = nl80211_update_ft_ies, |
11556 | .policy = nl80211_policy, | 11597 | .policy = nl80211_policy, |
11557 | .flags = GENL_ADMIN_PERM, | 11598 | .flags = GENL_UNS_ADMIN_PERM, |
11558 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11599 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11559 | NL80211_FLAG_NEED_RTNL, | 11600 | NL80211_FLAG_NEED_RTNL, |
11560 | }, | 11601 | }, |
@@ -11562,7 +11603,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11562 | .cmd = NL80211_CMD_CRIT_PROTOCOL_START, | 11603 | .cmd = NL80211_CMD_CRIT_PROTOCOL_START, |
11563 | .doit = nl80211_crit_protocol_start, | 11604 | .doit = nl80211_crit_protocol_start, |
11564 | .policy = nl80211_policy, | 11605 | .policy = nl80211_policy, |
11565 | .flags = GENL_ADMIN_PERM, | 11606 | .flags = GENL_UNS_ADMIN_PERM, |
11566 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11607 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11567 | NL80211_FLAG_NEED_RTNL, | 11608 | NL80211_FLAG_NEED_RTNL, |
11568 | }, | 11609 | }, |
@@ -11570,7 +11611,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11570 | .cmd = NL80211_CMD_CRIT_PROTOCOL_STOP, | 11611 | .cmd = NL80211_CMD_CRIT_PROTOCOL_STOP, |
11571 | .doit = nl80211_crit_protocol_stop, | 11612 | .doit = nl80211_crit_protocol_stop, |
11572 | .policy = nl80211_policy, | 11613 | .policy = nl80211_policy, |
11573 | .flags = GENL_ADMIN_PERM, | 11614 | .flags = GENL_UNS_ADMIN_PERM, |
11574 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | | 11615 | .internal_flags = NL80211_FLAG_NEED_WDEV_UP | |
11575 | NL80211_FLAG_NEED_RTNL, | 11616 | NL80211_FLAG_NEED_RTNL, |
11576 | }, | 11617 | }, |
@@ -11585,7 +11626,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11585 | .cmd = NL80211_CMD_SET_COALESCE, | 11626 | .cmd = NL80211_CMD_SET_COALESCE, |
11586 | .doit = nl80211_set_coalesce, | 11627 | .doit = nl80211_set_coalesce, |
11587 | .policy = nl80211_policy, | 11628 | .policy = nl80211_policy, |
11588 | .flags = GENL_ADMIN_PERM, | 11629 | .flags = GENL_UNS_ADMIN_PERM, |
11589 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11630 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11590 | NL80211_FLAG_NEED_RTNL, | 11631 | NL80211_FLAG_NEED_RTNL, |
11591 | }, | 11632 | }, |
@@ -11593,7 +11634,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11593 | .cmd = NL80211_CMD_CHANNEL_SWITCH, | 11634 | .cmd = NL80211_CMD_CHANNEL_SWITCH, |
11594 | .doit = nl80211_channel_switch, | 11635 | .doit = nl80211_channel_switch, |
11595 | .policy = nl80211_policy, | 11636 | .policy = nl80211_policy, |
11596 | .flags = GENL_ADMIN_PERM, | 11637 | .flags = GENL_UNS_ADMIN_PERM, |
11597 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11638 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11598 | NL80211_FLAG_NEED_RTNL, | 11639 | NL80211_FLAG_NEED_RTNL, |
11599 | }, | 11640 | }, |
@@ -11602,7 +11643,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11602 | .doit = nl80211_vendor_cmd, | 11643 | .doit = nl80211_vendor_cmd, |
11603 | .dumpit = nl80211_vendor_cmd_dump, | 11644 | .dumpit = nl80211_vendor_cmd_dump, |
11604 | .policy = nl80211_policy, | 11645 | .policy = nl80211_policy, |
11605 | .flags = GENL_ADMIN_PERM, | 11646 | .flags = GENL_UNS_ADMIN_PERM, |
11606 | .internal_flags = NL80211_FLAG_NEED_WIPHY | | 11647 | .internal_flags = NL80211_FLAG_NEED_WIPHY | |
11607 | NL80211_FLAG_NEED_RTNL, | 11648 | NL80211_FLAG_NEED_RTNL, |
11608 | }, | 11649 | }, |
@@ -11610,7 +11651,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11610 | .cmd = NL80211_CMD_SET_QOS_MAP, | 11651 | .cmd = NL80211_CMD_SET_QOS_MAP, |
11611 | .doit = nl80211_set_qos_map, | 11652 | .doit = nl80211_set_qos_map, |
11612 | .policy = nl80211_policy, | 11653 | .policy = nl80211_policy, |
11613 | .flags = GENL_ADMIN_PERM, | 11654 | .flags = GENL_UNS_ADMIN_PERM, |
11614 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11655 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11615 | NL80211_FLAG_NEED_RTNL, | 11656 | NL80211_FLAG_NEED_RTNL, |
11616 | }, | 11657 | }, |
@@ -11618,7 +11659,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11618 | .cmd = NL80211_CMD_ADD_TX_TS, | 11659 | .cmd = NL80211_CMD_ADD_TX_TS, |
11619 | .doit = nl80211_add_tx_ts, | 11660 | .doit = nl80211_add_tx_ts, |
11620 | .policy = nl80211_policy, | 11661 | .policy = nl80211_policy, |
11621 | .flags = GENL_ADMIN_PERM, | 11662 | .flags = GENL_UNS_ADMIN_PERM, |
11622 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11663 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11623 | NL80211_FLAG_NEED_RTNL, | 11664 | NL80211_FLAG_NEED_RTNL, |
11624 | }, | 11665 | }, |
@@ -11626,7 +11667,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11626 | .cmd = NL80211_CMD_DEL_TX_TS, | 11667 | .cmd = NL80211_CMD_DEL_TX_TS, |
11627 | .doit = nl80211_del_tx_ts, | 11668 | .doit = nl80211_del_tx_ts, |
11628 | .policy = nl80211_policy, | 11669 | .policy = nl80211_policy, |
11629 | .flags = GENL_ADMIN_PERM, | 11670 | .flags = GENL_UNS_ADMIN_PERM, |
11630 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11671 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11631 | NL80211_FLAG_NEED_RTNL, | 11672 | NL80211_FLAG_NEED_RTNL, |
11632 | }, | 11673 | }, |
@@ -11634,7 +11675,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11634 | .cmd = NL80211_CMD_TDLS_CHANNEL_SWITCH, | 11675 | .cmd = NL80211_CMD_TDLS_CHANNEL_SWITCH, |
11635 | .doit = nl80211_tdls_channel_switch, | 11676 | .doit = nl80211_tdls_channel_switch, |
11636 | .policy = nl80211_policy, | 11677 | .policy = nl80211_policy, |
11637 | .flags = GENL_ADMIN_PERM, | 11678 | .flags = GENL_UNS_ADMIN_PERM, |
11638 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11679 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11639 | NL80211_FLAG_NEED_RTNL, | 11680 | NL80211_FLAG_NEED_RTNL, |
11640 | }, | 11681 | }, |
@@ -11642,7 +11683,7 @@ static const struct genl_ops nl80211_ops[] = { | |||
11642 | .cmd = NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, | 11683 | .cmd = NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH, |
11643 | .doit = nl80211_tdls_cancel_channel_switch, | 11684 | .doit = nl80211_tdls_cancel_channel_switch, |
11644 | .policy = nl80211_policy, | 11685 | .policy = nl80211_policy, |
11645 | .flags = GENL_ADMIN_PERM, | 11686 | .flags = GENL_UNS_ADMIN_PERM, |
11646 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | | 11687 | .internal_flags = NL80211_FLAG_NEED_NETDEV_UP | |
11647 | NL80211_FLAG_NEED_RTNL, | 11688 | NL80211_FLAG_NEED_RTNL, |
11648 | }, | 11689 | }, |
@@ -12092,7 +12133,7 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, | |||
12092 | struct net_device *netdev, const u8 *bssid, | 12133 | struct net_device *netdev, const u8 *bssid, |
12093 | const u8 *req_ie, size_t req_ie_len, | 12134 | const u8 *req_ie, size_t req_ie_len, |
12094 | const u8 *resp_ie, size_t resp_ie_len, | 12135 | const u8 *resp_ie, size_t resp_ie_len, |
12095 | u16 status, gfp_t gfp) | 12136 | int status, gfp_t gfp) |
12096 | { | 12137 | { |
12097 | struct sk_buff *msg; | 12138 | struct sk_buff *msg; |
12098 | void *hdr; | 12139 | void *hdr; |
@@ -12110,7 +12151,10 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, | |||
12110 | if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) || | 12151 | if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) || |
12111 | nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) || | 12152 | nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) || |
12112 | (bssid && nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid)) || | 12153 | (bssid && nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid)) || |
12113 | nla_put_u16(msg, NL80211_ATTR_STATUS_CODE, status) || | 12154 | nla_put_u16(msg, NL80211_ATTR_STATUS_CODE, |
12155 | status < 0 ? WLAN_STATUS_UNSPECIFIED_FAILURE : | ||
12156 | status) || | ||
12157 | (status < 0 && nla_put_flag(msg, NL80211_ATTR_TIMED_OUT)) || | ||
12114 | (req_ie && | 12158 | (req_ie && |
12115 | nla_put(msg, NL80211_ATTR_REQ_IE, req_ie_len, req_ie)) || | 12159 | nla_put(msg, NL80211_ATTR_REQ_IE, req_ie_len, req_ie)) || |
12116 | (resp_ie && | 12160 | (resp_ie && |
@@ -12126,7 +12170,6 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, | |||
12126 | nla_put_failure: | 12170 | nla_put_failure: |
12127 | genlmsg_cancel(msg, hdr); | 12171 | genlmsg_cancel(msg, hdr); |
12128 | nlmsg_free(msg); | 12172 | nlmsg_free(msg); |
12129 | |||
12130 | } | 12173 | } |
12131 | 12174 | ||
12132 | void nl80211_send_roamed(struct cfg80211_registered_device *rdev, | 12175 | void nl80211_send_roamed(struct cfg80211_registered_device *rdev, |
@@ -12165,7 +12208,6 @@ void nl80211_send_roamed(struct cfg80211_registered_device *rdev, | |||
12165 | nla_put_failure: | 12208 | nla_put_failure: |
12166 | genlmsg_cancel(msg, hdr); | 12209 | genlmsg_cancel(msg, hdr); |
12167 | nlmsg_free(msg); | 12210 | nlmsg_free(msg); |
12168 | |||
12169 | } | 12211 | } |
12170 | 12212 | ||
12171 | void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, | 12213 | void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, |
@@ -12203,7 +12245,6 @@ void nl80211_send_disconnected(struct cfg80211_registered_device *rdev, | |||
12203 | nla_put_failure: | 12245 | nla_put_failure: |
12204 | genlmsg_cancel(msg, hdr); | 12246 | genlmsg_cancel(msg, hdr); |
12205 | nlmsg_free(msg); | 12247 | nlmsg_free(msg); |
12206 | |||
12207 | } | 12248 | } |
12208 | 12249 | ||
12209 | void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev, | 12250 | void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev, |
@@ -13545,7 +13586,6 @@ void cfg80211_crit_proto_stopped(struct wireless_dev *wdev, gfp_t gfp) | |||
13545 | if (hdr) | 13586 | if (hdr) |
13546 | genlmsg_cancel(msg, hdr); | 13587 | genlmsg_cancel(msg, hdr); |
13547 | nlmsg_free(msg); | 13588 | nlmsg_free(msg); |
13548 | |||
13549 | } | 13589 | } |
13550 | EXPORT_SYMBOL(cfg80211_crit_proto_stopped); | 13590 | EXPORT_SYMBOL(cfg80211_crit_proto_stopped); |
13551 | 13591 | ||
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h index 84d4edf1d545..a63f402b10b7 100644 --- a/net/wireless/nl80211.h +++ b/net/wireless/nl80211.h | |||
@@ -55,7 +55,7 @@ void nl80211_send_connect_result(struct cfg80211_registered_device *rdev, | |||
55 | struct net_device *netdev, const u8 *bssid, | 55 | struct net_device *netdev, const u8 *bssid, |
56 | const u8 *req_ie, size_t req_ie_len, | 56 | const u8 *req_ie, size_t req_ie_len, |
57 | const u8 *resp_ie, size_t resp_ie_len, | 57 | const u8 *resp_ie, size_t resp_ie_len, |
58 | u16 status, gfp_t gfp); | 58 | int status, gfp_t gfp); |
59 | void nl80211_send_roamed(struct cfg80211_registered_device *rdev, | 59 | void nl80211_send_roamed(struct cfg80211_registered_device *rdev, |
60 | struct net_device *netdev, const u8 *bssid, | 60 | struct net_device *netdev, const u8 *bssid, |
61 | const u8 *req_ie, size_t req_ie_len, | 61 | const u8 *req_ie, size_t req_ie_len, |
diff --git a/net/wireless/sme.c b/net/wireless/sme.c index 584fdc347221..add6824c44fd 100644 --- a/net/wireless/sme.c +++ b/net/wireless/sme.c | |||
@@ -244,9 +244,7 @@ void cfg80211_conn_work(struct work_struct *work) | |||
244 | if (cfg80211_conn_do_work(wdev)) { | 244 | if (cfg80211_conn_do_work(wdev)) { |
245 | __cfg80211_connect_result( | 245 | __cfg80211_connect_result( |
246 | wdev->netdev, bssid, | 246 | wdev->netdev, bssid, |
247 | NULL, 0, NULL, 0, | 247 | NULL, 0, NULL, 0, -1, false, NULL); |
248 | WLAN_STATUS_UNSPECIFIED_FAILURE, | ||
249 | false, NULL); | ||
250 | } | 248 | } |
251 | wdev_unlock(wdev); | 249 | wdev_unlock(wdev); |
252 | } | 250 | } |
@@ -648,7 +646,7 @@ static DECLARE_WORK(cfg80211_disconnect_work, disconnect_work); | |||
648 | void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | 646 | void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, |
649 | const u8 *req_ie, size_t req_ie_len, | 647 | const u8 *req_ie, size_t req_ie_len, |
650 | const u8 *resp_ie, size_t resp_ie_len, | 648 | const u8 *resp_ie, size_t resp_ie_len, |
651 | u16 status, bool wextev, | 649 | int status, bool wextev, |
652 | struct cfg80211_bss *bss) | 650 | struct cfg80211_bss *bss) |
653 | { | 651 | { |
654 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 652 | struct wireless_dev *wdev = dev->ieee80211_ptr; |
@@ -757,7 +755,7 @@ void __cfg80211_connect_result(struct net_device *dev, const u8 *bssid, | |||
757 | void cfg80211_connect_bss(struct net_device *dev, const u8 *bssid, | 755 | void cfg80211_connect_bss(struct net_device *dev, const u8 *bssid, |
758 | struct cfg80211_bss *bss, const u8 *req_ie, | 756 | struct cfg80211_bss *bss, const u8 *req_ie, |
759 | size_t req_ie_len, const u8 *resp_ie, | 757 | size_t req_ie_len, const u8 *resp_ie, |
760 | size_t resp_ie_len, u16 status, gfp_t gfp) | 758 | size_t resp_ie_len, int status, gfp_t gfp) |
761 | { | 759 | { |
762 | struct wireless_dev *wdev = dev->ieee80211_ptr; | 760 | struct wireless_dev *wdev = dev->ieee80211_ptr; |
763 | struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); | 761 | struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); |