diff options
author | David S. Miller <davem@davemloft.net> | 2015-03-31 16:39:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-31 16:39:04 -0400 |
commit | 7b6249bba940f57c20cdde793b306ca3831778c7 (patch) | |
tree | 24caf2ec9ea6fca08fe225228614807d0919b4b2 /drivers/net | |
parent | fbcb21705930f2930f506149d0b8d36dfbe45107 (diff) | |
parent | 2c44be81f0fc147eed9dc63e2601318b2c007aeb (diff) |
Merge tag 'mac80211-next-for-davem-2015-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Johannes Berg says:
====================
Lots of updates for net-next; along with the usual flurry
of small fixes, cleanups and internal features we have:
* VHT support for TDLS and IBSS (conditional on drivers though)
* first TX performance improvements (the biggest will come later)
* many suspend/resume (race) fixes
* name_assign_type support from Tom Gundersen
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
21 files changed, 145 insertions, 51 deletions
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 5d2db069d46e..6fd7189b7b01 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c | |||
@@ -1412,7 +1412,8 @@ static void ath10k_peer_assoc_h_crypto(struct ath10k *ar, | |||
1412 | lockdep_assert_held(&ar->conf_mutex); | 1412 | lockdep_assert_held(&ar->conf_mutex); |
1413 | 1413 | ||
1414 | bss = cfg80211_get_bss(ar->hw->wiphy, ar->hw->conf.chandef.chan, | 1414 | bss = cfg80211_get_bss(ar->hw->wiphy, ar->hw->conf.chandef.chan, |
1415 | info->bssid, NULL, 0, 0, 0); | 1415 | info->bssid, NULL, 0, IEEE80211_BSS_TYPE_ANY, |
1416 | IEEE80211_PRIVACY_ANY); | ||
1416 | if (bss) { | 1417 | if (bss) { |
1417 | const struct cfg80211_bss_ies *ies; | 1418 | const struct cfg80211_bss_ies *ies; |
1418 | 1419 | ||
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c index e2978037d858..cce4625a53ad 100644 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c | |||
@@ -686,20 +686,21 @@ ath6kl_add_bss_if_needed(struct ath6kl_vif *vif, | |||
686 | { | 686 | { |
687 | struct ath6kl *ar = vif->ar; | 687 | struct ath6kl *ar = vif->ar; |
688 | struct cfg80211_bss *bss; | 688 | struct cfg80211_bss *bss; |
689 | u16 cap_mask, cap_val; | 689 | u16 cap_val; |
690 | enum ieee80211_bss_type bss_type; | ||
690 | u8 *ie; | 691 | u8 *ie; |
691 | 692 | ||
692 | if (nw_type & ADHOC_NETWORK) { | 693 | if (nw_type & ADHOC_NETWORK) { |
693 | cap_mask = WLAN_CAPABILITY_IBSS; | ||
694 | cap_val = WLAN_CAPABILITY_IBSS; | 694 | cap_val = WLAN_CAPABILITY_IBSS; |
695 | bss_type = IEEE80211_BSS_TYPE_IBSS; | ||
695 | } else { | 696 | } else { |
696 | cap_mask = WLAN_CAPABILITY_ESS; | ||
697 | cap_val = WLAN_CAPABILITY_ESS; | 697 | cap_val = WLAN_CAPABILITY_ESS; |
698 | bss_type = IEEE80211_BSS_TYPE_ESS; | ||
698 | } | 699 | } |
699 | 700 | ||
700 | bss = cfg80211_get_bss(ar->wiphy, chan, bssid, | 701 | bss = cfg80211_get_bss(ar->wiphy, chan, bssid, |
701 | vif->ssid, vif->ssid_len, | 702 | vif->ssid, vif->ssid_len, |
702 | cap_mask, cap_val); | 703 | bss_type, IEEE80211_PRIVACY_ANY); |
703 | if (bss == NULL) { | 704 | if (bss == NULL) { |
704 | /* | 705 | /* |
705 | * Since cfg80211 may not yet know about the BSS, | 706 | * Since cfg80211 may not yet know about the BSS, |
@@ -1495,6 +1496,7 @@ static int ath6kl_cfg80211_set_power_mgmt(struct wiphy *wiphy, | |||
1495 | 1496 | ||
1496 | static struct wireless_dev *ath6kl_cfg80211_add_iface(struct wiphy *wiphy, | 1497 | static struct wireless_dev *ath6kl_cfg80211_add_iface(struct wiphy *wiphy, |
1497 | const char *name, | 1498 | const char *name, |
1499 | unsigned char name_assign_type, | ||
1498 | enum nl80211_iftype type, | 1500 | enum nl80211_iftype type, |
1499 | u32 *flags, | 1501 | u32 *flags, |
1500 | struct vif_params *params) | 1502 | struct vif_params *params) |
@@ -1513,7 +1515,7 @@ static struct wireless_dev *ath6kl_cfg80211_add_iface(struct wiphy *wiphy, | |||
1513 | return ERR_PTR(-EINVAL); | 1515 | return ERR_PTR(-EINVAL); |
1514 | } | 1516 | } |
1515 | 1517 | ||
1516 | wdev = ath6kl_interface_add(ar, name, type, if_idx, nw_type); | 1518 | wdev = ath6kl_interface_add(ar, name, name_assign_type, type, if_idx, nw_type); |
1517 | if (!wdev) | 1519 | if (!wdev) |
1518 | return ERR_PTR(-ENOMEM); | 1520 | return ERR_PTR(-ENOMEM); |
1519 | 1521 | ||
@@ -3633,13 +3635,14 @@ void ath6kl_cfg80211_vif_cleanup(struct ath6kl_vif *vif) | |||
3633 | } | 3635 | } |
3634 | 3636 | ||
3635 | struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, | 3637 | struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, |
3638 | unsigned char name_assign_type, | ||
3636 | enum nl80211_iftype type, | 3639 | enum nl80211_iftype type, |
3637 | u8 fw_vif_idx, u8 nw_type) | 3640 | u8 fw_vif_idx, u8 nw_type) |
3638 | { | 3641 | { |
3639 | struct net_device *ndev; | 3642 | struct net_device *ndev; |
3640 | struct ath6kl_vif *vif; | 3643 | struct ath6kl_vif *vif; |
3641 | 3644 | ||
3642 | ndev = alloc_netdev(sizeof(*vif), name, NET_NAME_UNKNOWN, ether_setup); | 3645 | ndev = alloc_netdev(sizeof(*vif), name, name_assign_type, ether_setup); |
3643 | if (!ndev) | 3646 | if (!ndev) |
3644 | return NULL; | 3647 | return NULL; |
3645 | 3648 | ||
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.h b/drivers/net/wireless/ath/ath6kl/cfg80211.h index b59becd91aea..5aa57a7639bf 100644 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.h +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.h | |||
@@ -25,6 +25,7 @@ enum ath6kl_cfg_suspend_mode { | |||
25 | }; | 25 | }; |
26 | 26 | ||
27 | struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, | 27 | struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, |
28 | unsigned char name_assign_type, | ||
28 | enum nl80211_iftype type, | 29 | enum nl80211_iftype type, |
29 | u8 fw_vif_idx, u8 nw_type); | 30 | u8 fw_vif_idx, u8 nw_type); |
30 | void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq, | 31 | void ath6kl_cfg80211_ch_switch_notify(struct ath6kl_vif *vif, int freq, |
diff --git a/drivers/net/wireless/ath/ath6kl/core.c b/drivers/net/wireless/ath/ath6kl/core.c index 0df74b245af4..4ec02cea0f43 100644 --- a/drivers/net/wireless/ath/ath6kl/core.c +++ b/drivers/net/wireless/ath/ath6kl/core.c | |||
@@ -211,8 +211,8 @@ int ath6kl_core_init(struct ath6kl *ar, enum ath6kl_htc_type htc_type) | |||
211 | rtnl_lock(); | 211 | rtnl_lock(); |
212 | 212 | ||
213 | /* Add an initial station interface */ | 213 | /* Add an initial station interface */ |
214 | wdev = ath6kl_interface_add(ar, "wlan%d", NL80211_IFTYPE_STATION, 0, | 214 | wdev = ath6kl_interface_add(ar, "wlan%d", NET_NAME_ENUM, |
215 | INFRA_NETWORK); | 215 | NL80211_IFTYPE_STATION, 0, INFRA_NETWORK); |
216 | 216 | ||
217 | rtnl_unlock(); | 217 | rtnl_unlock(); |
218 | 218 | ||
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index 4bd708c8716c..47d14db59b93 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c | |||
@@ -409,7 +409,7 @@ static int wil_cfg80211_connect(struct wiphy *wiphy, | |||
409 | 409 | ||
410 | bss = cfg80211_get_bss(wiphy, sme->channel, sme->bssid, | 410 | bss = cfg80211_get_bss(wiphy, sme->channel, sme->bssid, |
411 | sme->ssid, sme->ssid_len, | 411 | sme->ssid, sme->ssid_len, |
412 | WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); | 412 | IEEE80211_BSS_TYPE_ESS, IEEE80211_PRIVACY_ANY); |
413 | if (!bss) { | 413 | if (!bss) { |
414 | wil_err(wil, "Unable to find BSS\n"); | 414 | wil_err(wil, "Unable to find BSS\n"); |
415 | return -ENOENT; | 415 | return -ENOENT; |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c index 9b805c9fd51e..8a15ebbce4a3 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | |||
@@ -625,6 +625,7 @@ static bool brcmf_is_ibssmode(struct brcmf_cfg80211_vif *vif) | |||
625 | 625 | ||
626 | static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy, | 626 | static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy, |
627 | const char *name, | 627 | const char *name, |
628 | unsigned char name_assign_type, | ||
628 | enum nl80211_iftype type, | 629 | enum nl80211_iftype type, |
629 | u32 *flags, | 630 | u32 *flags, |
630 | struct vif_params *params) | 631 | struct vif_params *params) |
@@ -648,7 +649,7 @@ static struct wireless_dev *brcmf_cfg80211_add_iface(struct wiphy *wiphy, | |||
648 | case NL80211_IFTYPE_P2P_CLIENT: | 649 | case NL80211_IFTYPE_P2P_CLIENT: |
649 | case NL80211_IFTYPE_P2P_GO: | 650 | case NL80211_IFTYPE_P2P_GO: |
650 | case NL80211_IFTYPE_P2P_DEVICE: | 651 | case NL80211_IFTYPE_P2P_DEVICE: |
651 | wdev = brcmf_p2p_add_vif(wiphy, name, type, flags, params); | 652 | wdev = brcmf_p2p_add_vif(wiphy, name, name_assign_type, type, flags, params); |
652 | if (!IS_ERR(wdev)) | 653 | if (!IS_ERR(wdev)) |
653 | brcmf_cfg80211_update_proto_addr_mode(wdev); | 654 | brcmf_cfg80211_update_proto_addr_mode(wdev); |
654 | return wdev; | 655 | return wdev; |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c index 98d82ec52de1..710fbe570eb2 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c | |||
@@ -2246,11 +2246,13 @@ static void brcmf_p2p_delete_p2pdev(struct brcmf_p2p_info *p2p, | |||
2246 | * | 2246 | * |
2247 | * @wiphy: wiphy device of new interface. | 2247 | * @wiphy: wiphy device of new interface. |
2248 | * @name: name of the new interface. | 2248 | * @name: name of the new interface. |
2249 | * @name_assign_type: origin of the interface name | ||
2249 | * @type: nl80211 interface type. | 2250 | * @type: nl80211 interface type. |
2250 | * @flags: not used. | 2251 | * @flags: not used. |
2251 | * @params: contains mac address for P2P device. | 2252 | * @params: contains mac address for P2P device. |
2252 | */ | 2253 | */ |
2253 | struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name, | 2254 | struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name, |
2255 | unsigned char name_assign_type, | ||
2254 | enum nl80211_iftype type, u32 *flags, | 2256 | enum nl80211_iftype type, u32 *flags, |
2255 | struct vif_params *params) | 2257 | struct vif_params *params) |
2256 | { | 2258 | { |
@@ -2310,6 +2312,7 @@ struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name, | |||
2310 | } | 2312 | } |
2311 | 2313 | ||
2312 | strncpy(ifp->ndev->name, name, sizeof(ifp->ndev->name) - 1); | 2314 | strncpy(ifp->ndev->name, name, sizeof(ifp->ndev->name) - 1); |
2315 | ifp->ndev->name_assign_type = name_assign_type; | ||
2313 | err = brcmf_net_attach(ifp, true); | 2316 | err = brcmf_net_attach(ifp, true); |
2314 | if (err) { | 2317 | if (err) { |
2315 | brcmf_err("Registering netdevice failed\n"); | 2318 | brcmf_err("Registering netdevice failed\n"); |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.h b/drivers/net/wireless/brcm80211/brcmfmac/p2p.h index 6821b26224be..872f382d9e49 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.h +++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.h | |||
@@ -149,6 +149,7 @@ struct brcmf_p2p_info { | |||
149 | s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg); | 149 | s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg); |
150 | void brcmf_p2p_detach(struct brcmf_p2p_info *p2p); | 150 | void brcmf_p2p_detach(struct brcmf_p2p_info *p2p); |
151 | struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name, | 151 | struct wireless_dev *brcmf_p2p_add_vif(struct wiphy *wiphy, const char *name, |
152 | unsigned char name_assign_type, | ||
152 | enum nl80211_iftype type, u32 *flags, | 153 | enum nl80211_iftype type, u32 *flags, |
153 | struct vif_params *params); | 154 | struct vif_params *params); |
154 | int brcmf_p2p_del_vif(struct wiphy *wiphy, struct wireless_dev *wdev); | 155 | int brcmf_p2p_del_vif(struct wiphy *wiphy, struct wireless_dev *wdev); |
diff --git a/drivers/net/wireless/cw1200/sta.c b/drivers/net/wireless/cw1200/sta.c index 89bc18cd6700..b0f65fa09428 100644 --- a/drivers/net/wireless/cw1200/sta.c +++ b/drivers/net/wireless/cw1200/sta.c | |||
@@ -1240,8 +1240,8 @@ static void cw1200_do_join(struct cw1200_common *priv) | |||
1240 | 1240 | ||
1241 | bssid = priv->vif->bss_conf.bssid; | 1241 | bssid = priv->vif->bss_conf.bssid; |
1242 | 1242 | ||
1243 | bss = cfg80211_get_bss(priv->hw->wiphy, priv->channel, | 1243 | bss = cfg80211_get_bss(priv->hw->wiphy, priv->channel, bssid, NULL, 0, |
1244 | bssid, NULL, 0, 0, 0); | 1244 | IEEE80211_BSS_TYPE_ANY, IEEE80211_PRIVACY_ANY); |
1245 | 1245 | ||
1246 | if (!bss && !conf->ibss_joined) { | 1246 | if (!bss && !conf->ibss_joined) { |
1247 | wsm_unlock_tx(priv); | 1247 | wsm_unlock_tx(priv); |
diff --git a/drivers/net/wireless/ipw2x00/Kconfig b/drivers/net/wireless/ipw2x00/Kconfig index 21de4fe6cf2d..d6ec44d7a391 100644 --- a/drivers/net/wireless/ipw2x00/Kconfig +++ b/drivers/net/wireless/ipw2x00/Kconfig | |||
@@ -66,7 +66,7 @@ config IPW2100_DEBUG | |||
66 | config IPW2200 | 66 | config IPW2200 |
67 | tristate "Intel PRO/Wireless 2200BG and 2915ABG Network Connection" | 67 | tristate "Intel PRO/Wireless 2200BG and 2915ABG Network Connection" |
68 | depends on PCI && CFG80211 | 68 | depends on PCI && CFG80211 |
69 | select CFG80211_WEXT | 69 | select CFG80211_WEXT_EXPORT |
70 | select WIRELESS_EXT | 70 | select WIRELESS_EXT |
71 | select WEXT_SPY | 71 | select WEXT_SPY |
72 | select WEXT_PRIV | 72 | select WEXT_PRIV |
diff --git a/drivers/net/wireless/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/iwlwifi/dvm/mac80211.c index 47e64e8b9517..5707ba5ce23f 100644 --- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c | |||
@@ -1129,20 +1129,23 @@ done: | |||
1129 | IWL_DEBUG_MAC80211(priv, "leave\n"); | 1129 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | static void iwlagn_mac_rssi_callback(struct ieee80211_hw *hw, | 1132 | static void iwlagn_mac_event_callback(struct ieee80211_hw *hw, |
1133 | struct ieee80211_vif *vif, | 1133 | struct ieee80211_vif *vif, |
1134 | enum ieee80211_rssi_event rssi_event) | 1134 | const struct ieee80211_event *event) |
1135 | { | 1135 | { |
1136 | struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); | 1136 | struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); |
1137 | 1137 | ||
1138 | if (event->type != RSSI_EVENT) | ||
1139 | return; | ||
1140 | |||
1138 | IWL_DEBUG_MAC80211(priv, "enter\n"); | 1141 | IWL_DEBUG_MAC80211(priv, "enter\n"); |
1139 | mutex_lock(&priv->mutex); | 1142 | mutex_lock(&priv->mutex); |
1140 | 1143 | ||
1141 | if (priv->lib->bt_params && | 1144 | if (priv->lib->bt_params && |
1142 | priv->lib->bt_params->advanced_bt_coexist) { | 1145 | priv->lib->bt_params->advanced_bt_coexist) { |
1143 | if (rssi_event == RSSI_EVENT_LOW) | 1146 | if (event->u.rssi.data == RSSI_EVENT_LOW) |
1144 | priv->bt_enable_pspoll = true; | 1147 | priv->bt_enable_pspoll = true; |
1145 | else if (rssi_event == RSSI_EVENT_HIGH) | 1148 | else if (event->u.rssi.data == RSSI_EVENT_HIGH) |
1146 | priv->bt_enable_pspoll = false; | 1149 | priv->bt_enable_pspoll = false; |
1147 | 1150 | ||
1148 | iwlagn_send_advance_bt_config(priv); | 1151 | iwlagn_send_advance_bt_config(priv); |
@@ -1613,7 +1616,7 @@ const struct ieee80211_ops iwlagn_hw_ops = { | |||
1613 | .channel_switch = iwlagn_mac_channel_switch, | 1616 | .channel_switch = iwlagn_mac_channel_switch, |
1614 | .flush = iwlagn_mac_flush, | 1617 | .flush = iwlagn_mac_flush, |
1615 | .tx_last_beacon = iwlagn_mac_tx_last_beacon, | 1618 | .tx_last_beacon = iwlagn_mac_tx_last_beacon, |
1616 | .rssi_callback = iwlagn_mac_rssi_callback, | 1619 | .event_callback = iwlagn_mac_event_callback, |
1617 | .set_tim = iwlagn_mac_set_tim, | 1620 | .set_tim = iwlagn_mac_set_tim, |
1618 | }; | 1621 | }; |
1619 | 1622 | ||
diff --git a/drivers/net/wireless/iwlwifi/mvm/coex.c b/drivers/net/wireless/iwlwifi/mvm/coex.c index 638ec0945009..877f19bbae7e 100644 --- a/drivers/net/wireless/iwlwifi/mvm/coex.c +++ b/drivers/net/wireless/iwlwifi/mvm/coex.c | |||
@@ -1024,7 +1024,7 @@ static void iwl_mvm_bt_rssi_iterator(void *_data, u8 *mac, | |||
1024 | } | 1024 | } |
1025 | 1025 | ||
1026 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | 1026 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, |
1027 | enum ieee80211_rssi_event rssi_event) | 1027 | enum ieee80211_rssi_event_data rssi_event) |
1028 | { | 1028 | { |
1029 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | 1029 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); |
1030 | struct iwl_bt_iterator_data data = { | 1030 | struct iwl_bt_iterator_data data = { |
diff --git a/drivers/net/wireless/iwlwifi/mvm/coex_legacy.c b/drivers/net/wireless/iwlwifi/mvm/coex_legacy.c index 05d31713ed38..5535ec9766cb 100644 --- a/drivers/net/wireless/iwlwifi/mvm/coex_legacy.c +++ b/drivers/net/wireless/iwlwifi/mvm/coex_legacy.c | |||
@@ -1069,7 +1069,7 @@ static void iwl_mvm_bt_rssi_iterator(void *_data, u8 *mac, | |||
1069 | } | 1069 | } |
1070 | 1070 | ||
1071 | void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | 1071 | void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, |
1072 | enum ieee80211_rssi_event rssi_event) | 1072 | enum ieee80211_rssi_event_data rssi_event) |
1073 | { | 1073 | { |
1074 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); | 1074 | struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); |
1075 | struct iwl_bt_iterator_data data = { | 1075 | struct iwl_bt_iterator_data data = { |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index e10172d69eaa..95cad68ab069 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -1251,7 +1251,7 @@ int iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm, | |||
1251 | struct iwl_rx_cmd_buffer *rxb, | 1251 | struct iwl_rx_cmd_buffer *rxb, |
1252 | struct iwl_device_cmd *cmd); | 1252 | struct iwl_device_cmd *cmd); |
1253 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | 1253 | void iwl_mvm_bt_rssi_event(struct iwl_mvm *mvm, struct ieee80211_vif *vif, |
1254 | enum ieee80211_rssi_event rssi_event); | 1254 | enum ieee80211_rssi_event_data); |
1255 | void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm); | 1255 | void iwl_mvm_bt_coex_vif_change(struct iwl_mvm *mvm); |
1256 | u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm, | 1256 | u16 iwl_mvm_coex_agg_time_limit(struct iwl_mvm *mvm, |
1257 | struct ieee80211_sta *sta); | 1257 | struct ieee80211_sta *sta); |
@@ -1271,7 +1271,7 @@ int iwl_mvm_rx_bt_coex_notif_old(struct iwl_mvm *mvm, | |||
1271 | struct iwl_rx_cmd_buffer *rxb, | 1271 | struct iwl_rx_cmd_buffer *rxb, |
1272 | struct iwl_device_cmd *cmd); | 1272 | struct iwl_device_cmd *cmd); |
1273 | void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, | 1273 | void iwl_mvm_bt_rssi_event_old(struct iwl_mvm *mvm, struct ieee80211_vif *vif, |
1274 | enum ieee80211_rssi_event rssi_event); | 1274 | enum ieee80211_rssi_event_data); |
1275 | u16 iwl_mvm_coex_agg_time_limit_old(struct iwl_mvm *mvm, | 1275 | u16 iwl_mvm_coex_agg_time_limit_old(struct iwl_mvm *mvm, |
1276 | struct ieee80211_sta *sta); | 1276 | struct ieee80211_sta *sta); |
1277 | bool iwl_mvm_bt_coex_is_mimo_allowed_old(struct iwl_mvm *mvm, | 1277 | bool iwl_mvm_bt_coex_is_mimo_allowed_old(struct iwl_mvm *mvm, |
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c index a92985a6ea21..1a4d558022d8 100644 --- a/drivers/net/wireless/libertas/cfg.c +++ b/drivers/net/wireless/libertas/cfg.c | |||
@@ -1356,8 +1356,8 @@ static int lbs_cfg_connect(struct wiphy *wiphy, struct net_device *dev, | |||
1356 | 1356 | ||
1357 | /* Find the BSS we want using available scan results */ | 1357 | /* Find the BSS we want using available scan results */ |
1358 | bss = cfg80211_get_bss(wiphy, sme->channel, sme->bssid, | 1358 | bss = cfg80211_get_bss(wiphy, sme->channel, sme->bssid, |
1359 | sme->ssid, sme->ssid_len, | 1359 | sme->ssid, sme->ssid_len, IEEE80211_BSS_TYPE_ESS, |
1360 | WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); | 1360 | IEEE80211_PRIVACY_ANY); |
1361 | if (!bss) { | 1361 | if (!bss) { |
1362 | wiphy_err(wiphy, "assoc: bss %pM not in scan results\n", | 1362 | wiphy_err(wiphy, "assoc: bss %pM not in scan results\n", |
1363 | sme->bssid); | 1363 | sme->bssid); |
@@ -2000,7 +2000,7 @@ static int lbs_join_ibss(struct wiphy *wiphy, struct net_device *dev, | |||
2000 | * bss list is populated already */ | 2000 | * bss list is populated already */ |
2001 | bss = cfg80211_get_bss(wiphy, params->chandef.chan, params->bssid, | 2001 | bss = cfg80211_get_bss(wiphy, params->chandef.chan, params->bssid, |
2002 | params->ssid, params->ssid_len, | 2002 | params->ssid, params->ssid_len, |
2003 | WLAN_CAPABILITY_IBSS, WLAN_CAPABILITY_IBSS); | 2003 | IEEE80211_BSS_TYPE_IBSS, IEEE80211_PRIVACY_ANY); |
2004 | 2004 | ||
2005 | if (bss) { | 2005 | if (bss) { |
2006 | ret = lbs_ibss_join_existing(priv, params, bss); | 2006 | ret = lbs_ibss_join_existing(priv, params, bss); |
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index d56b7859a437..d5c0a1af08b9 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
@@ -330,6 +330,83 @@ static const struct ieee80211_rate hwsim_rates[] = { | |||
330 | { .bitrate = 540 } | 330 | { .bitrate = 540 } |
331 | }; | 331 | }; |
332 | 332 | ||
333 | #define OUI_QCA 0x001374 | ||
334 | #define QCA_NL80211_SUBCMD_TEST 1 | ||
335 | enum qca_nl80211_vendor_subcmds { | ||
336 | QCA_WLAN_VENDOR_ATTR_TEST = 8, | ||
337 | QCA_WLAN_VENDOR_ATTR_MAX = QCA_WLAN_VENDOR_ATTR_TEST | ||
338 | }; | ||
339 | |||
340 | static const struct nla_policy | ||
341 | hwsim_vendor_test_policy[QCA_WLAN_VENDOR_ATTR_MAX + 1] = { | ||
342 | [QCA_WLAN_VENDOR_ATTR_MAX] = { .type = NLA_U32 }, | ||
343 | }; | ||
344 | |||
345 | static int mac80211_hwsim_vendor_cmd_test(struct wiphy *wiphy, | ||
346 | struct wireless_dev *wdev, | ||
347 | const void *data, int data_len) | ||
348 | { | ||
349 | struct sk_buff *skb; | ||
350 | struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_MAX + 1]; | ||
351 | int err; | ||
352 | u32 val; | ||
353 | |||
354 | err = nla_parse(tb, QCA_WLAN_VENDOR_ATTR_MAX, data, data_len, | ||
355 | hwsim_vendor_test_policy); | ||
356 | if (err) | ||
357 | return err; | ||
358 | if (!tb[QCA_WLAN_VENDOR_ATTR_TEST]) | ||
359 | return -EINVAL; | ||
360 | val = nla_get_u32(tb[QCA_WLAN_VENDOR_ATTR_TEST]); | ||
361 | wiphy_debug(wiphy, "%s: test=%u\n", __func__, val); | ||
362 | |||
363 | /* Send a vendor event as a test. Note that this would not normally be | ||
364 | * done within a command handler, but rather, based on some other | ||
365 | * trigger. For simplicity, this command is used to trigger the event | ||
366 | * here. | ||
367 | * | ||
368 | * event_idx = 0 (index in mac80211_hwsim_vendor_commands) | ||
369 | */ | ||
370 | skb = cfg80211_vendor_event_alloc(wiphy, wdev, 100, 0, GFP_KERNEL); | ||
371 | if (skb) { | ||
372 | /* skb_put() or nla_put() will fill up data within | ||
373 | * NL80211_ATTR_VENDOR_DATA. | ||
374 | */ | ||
375 | |||
376 | /* Add vendor data */ | ||
377 | nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_TEST, val + 1); | ||
378 | |||
379 | /* Send the event - this will call nla_nest_end() */ | ||
380 | cfg80211_vendor_event(skb, GFP_KERNEL); | ||
381 | } | ||
382 | |||
383 | /* Send a response to the command */ | ||
384 | skb = cfg80211_vendor_cmd_alloc_reply_skb(wiphy, 10); | ||
385 | if (!skb) | ||
386 | return -ENOMEM; | ||
387 | |||
388 | /* skb_put() or nla_put() will fill up data within | ||
389 | * NL80211_ATTR_VENDOR_DATA | ||
390 | */ | ||
391 | nla_put_u32(skb, QCA_WLAN_VENDOR_ATTR_TEST, val + 2); | ||
392 | |||
393 | return cfg80211_vendor_cmd_reply(skb); | ||
394 | } | ||
395 | |||
396 | static struct wiphy_vendor_command mac80211_hwsim_vendor_commands[] = { | ||
397 | { | ||
398 | .info = { .vendor_id = OUI_QCA, | ||
399 | .subcmd = QCA_NL80211_SUBCMD_TEST }, | ||
400 | .flags = WIPHY_VENDOR_CMD_NEED_NETDEV, | ||
401 | .doit = mac80211_hwsim_vendor_cmd_test, | ||
402 | } | ||
403 | }; | ||
404 | |||
405 | /* Advertise support vendor specific events */ | ||
406 | static const struct nl80211_vendor_cmd_info mac80211_hwsim_vendor_events[] = { | ||
407 | { .vendor_id = OUI_QCA, .subcmd = 1 }, | ||
408 | }; | ||
409 | |||
333 | static const struct ieee80211_iface_limit hwsim_if_limits[] = { | 410 | static const struct ieee80211_iface_limit hwsim_if_limits[] = { |
334 | { .max = 1, .types = BIT(NL80211_IFTYPE_ADHOC) }, | 411 | { .max = 1, .types = BIT(NL80211_IFTYPE_ADHOC) }, |
335 | { .max = 2048, .types = BIT(NL80211_IFTYPE_STATION) | | 412 | { .max = 2048, .types = BIT(NL80211_IFTYPE_STATION) | |
@@ -906,8 +983,7 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, | |||
906 | goto nla_put_failure; | 983 | goto nla_put_failure; |
907 | } | 984 | } |
908 | 985 | ||
909 | if (nla_put(skb, HWSIM_ATTR_ADDR_TRANSMITTER, | 986 | if (nla_put(skb, HWSIM_ATTR_ADDR_TRANSMITTER, ETH_ALEN, hdr->addr2)) |
910 | ETH_ALEN, data->addresses[1].addr)) | ||
911 | goto nla_put_failure; | 987 | goto nla_put_failure; |
912 | 988 | ||
913 | /* We get the skb->data */ | 989 | /* We get the skb->data */ |
@@ -1522,21 +1598,16 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw, | |||
1522 | vp->aid = info->aid; | 1598 | vp->aid = info->aid; |
1523 | } | 1599 | } |
1524 | 1600 | ||
1525 | if (changed & BSS_CHANGED_BEACON_INT) { | ||
1526 | wiphy_debug(hw->wiphy, " BCNINT: %d\n", info->beacon_int); | ||
1527 | data->beacon_int = info->beacon_int * 1024; | ||
1528 | } | ||
1529 | |||
1530 | if (changed & BSS_CHANGED_BEACON_ENABLED) { | 1601 | if (changed & BSS_CHANGED_BEACON_ENABLED) { |
1531 | wiphy_debug(hw->wiphy, " BCN EN: %d\n", info->enable_beacon); | 1602 | wiphy_debug(hw->wiphy, " BCN EN: %d (BI=%u)\n", |
1603 | info->enable_beacon, info->beacon_int); | ||
1532 | vp->bcn_en = info->enable_beacon; | 1604 | vp->bcn_en = info->enable_beacon; |
1533 | if (data->started && | 1605 | if (data->started && |
1534 | !hrtimer_is_queued(&data->beacon_timer.timer) && | 1606 | !hrtimer_is_queued(&data->beacon_timer.timer) && |
1535 | info->enable_beacon) { | 1607 | info->enable_beacon) { |
1536 | u64 tsf, until_tbtt; | 1608 | u64 tsf, until_tbtt; |
1537 | u32 bcn_int; | 1609 | u32 bcn_int; |
1538 | if (WARN_ON(!data->beacon_int)) | 1610 | data->beacon_int = info->beacon_int * 1024; |
1539 | data->beacon_int = 1000 * 1024; | ||
1540 | tsf = mac80211_hwsim_get_tsf(hw, vif); | 1611 | tsf = mac80211_hwsim_get_tsf(hw, vif); |
1541 | bcn_int = data->beacon_int; | 1612 | bcn_int = data->beacon_int; |
1542 | until_tbtt = bcn_int - do_div(tsf, bcn_int); | 1613 | until_tbtt = bcn_int - do_div(tsf, bcn_int); |
@@ -1550,8 +1621,10 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw, | |||
1550 | mac80211_hwsim_bcn_en_iter, &count); | 1621 | mac80211_hwsim_bcn_en_iter, &count); |
1551 | wiphy_debug(hw->wiphy, " beaconing vifs remaining: %u", | 1622 | wiphy_debug(hw->wiphy, " beaconing vifs remaining: %u", |
1552 | count); | 1623 | count); |
1553 | if (count == 0) | 1624 | if (count == 0) { |
1554 | tasklet_hrtimer_cancel(&data->beacon_timer); | 1625 | tasklet_hrtimer_cancel(&data->beacon_timer); |
1626 | data->beacon_int = 0; | ||
1627 | } | ||
1555 | } | 1628 | } |
1556 | } | 1629 | } |
1557 | 1630 | ||
@@ -2420,6 +2493,12 @@ static int mac80211_hwsim_new_radio(struct genl_info *info, | |||
2420 | hw->max_rates = 4; | 2493 | hw->max_rates = 4; |
2421 | hw->max_rate_tries = 11; | 2494 | hw->max_rate_tries = 11; |
2422 | 2495 | ||
2496 | hw->wiphy->vendor_commands = mac80211_hwsim_vendor_commands; | ||
2497 | hw->wiphy->n_vendor_commands = | ||
2498 | ARRAY_SIZE(mac80211_hwsim_vendor_commands); | ||
2499 | hw->wiphy->vendor_events = mac80211_hwsim_vendor_events; | ||
2500 | hw->wiphy->n_vendor_events = ARRAY_SIZE(mac80211_hwsim_vendor_events); | ||
2501 | |||
2423 | if (param->reg_strict) | 2502 | if (param->reg_strict) |
2424 | hw->wiphy->regulatory_flags |= REGULATORY_STRICT_REG; | 2503 | hw->wiphy->regulatory_flags |= REGULATORY_STRICT_REG; |
2425 | if (param->regd) { | 2504 | if (param->regd) { |
@@ -2611,7 +2690,7 @@ static struct mac80211_hwsim_data *get_hwsim_data_ref_from_addr(const u8 *addr) | |||
2611 | 2690 | ||
2612 | spin_lock_bh(&hwsim_radio_lock); | 2691 | spin_lock_bh(&hwsim_radio_lock); |
2613 | list_for_each_entry(data, &hwsim_radios, list) { | 2692 | list_for_each_entry(data, &hwsim_radios, list) { |
2614 | if (memcmp(data->addresses[1].addr, addr, ETH_ALEN) == 0) { | 2693 | if (mac80211_hwsim_addr_match(data, addr)) { |
2615 | _found = true; | 2694 | _found = true; |
2616 | break; | 2695 | break; |
2617 | } | 2696 | } |
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index 8e1f681f960b..6f8993c12373 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c | |||
@@ -1954,13 +1954,13 @@ done: | |||
1954 | if (mode == NL80211_IFTYPE_ADHOC) | 1954 | if (mode == NL80211_IFTYPE_ADHOC) |
1955 | bss = cfg80211_get_bss(priv->wdev.wiphy, channel, | 1955 | bss = cfg80211_get_bss(priv->wdev.wiphy, channel, |
1956 | bssid, ssid, ssid_len, | 1956 | bssid, ssid, ssid_len, |
1957 | WLAN_CAPABILITY_IBSS, | 1957 | IEEE80211_BSS_TYPE_IBSS, |
1958 | WLAN_CAPABILITY_IBSS); | 1958 | IEEE80211_PRIVACY_ANY); |
1959 | else | 1959 | else |
1960 | bss = cfg80211_get_bss(priv->wdev.wiphy, channel, | 1960 | bss = cfg80211_get_bss(priv->wdev.wiphy, channel, |
1961 | bssid, ssid, ssid_len, | 1961 | bssid, ssid, ssid_len, |
1962 | WLAN_CAPABILITY_ESS, | 1962 | IEEE80211_BSS_TYPE_ESS, |
1963 | WLAN_CAPABILITY_ESS); | 1963 | IEEE80211_PRIVACY_ANY); |
1964 | 1964 | ||
1965 | if (!bss) { | 1965 | if (!bss) { |
1966 | if (is_scanning_required) { | 1966 | if (is_scanning_required) { |
@@ -2398,10 +2398,11 @@ mwifiex_setup_ht_caps(struct ieee80211_sta_ht_cap *ht_info, | |||
2398 | } | 2398 | } |
2399 | 2399 | ||
2400 | /* | 2400 | /* |
2401 | * create a new virtual interface with the given name | 2401 | * create a new virtual interface with the given name and name assign type |
2402 | */ | 2402 | */ |
2403 | struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, | 2403 | struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, |
2404 | const char *name, | 2404 | const char *name, |
2405 | unsigned char name_assign_type, | ||
2405 | enum nl80211_iftype type, | 2406 | enum nl80211_iftype type, |
2406 | u32 *flags, | 2407 | u32 *flags, |
2407 | struct vif_params *params) | 2408 | struct vif_params *params) |
@@ -2521,7 +2522,7 @@ struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, | |||
2521 | } | 2522 | } |
2522 | 2523 | ||
2523 | dev = alloc_netdev_mqs(sizeof(struct mwifiex_private *), name, | 2524 | dev = alloc_netdev_mqs(sizeof(struct mwifiex_private *), name, |
2524 | NET_NAME_UNKNOWN, ether_setup, | 2525 | name_assign_type, ether_setup, |
2525 | IEEE80211_NUM_ACS, 1); | 2526 | IEEE80211_NUM_ACS, 1); |
2526 | if (!dev) { | 2527 | if (!dev) { |
2527 | wiphy_err(wiphy, "no memory available for netdevice\n"); | 2528 | wiphy_err(wiphy, "no memory available for netdevice\n"); |
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c index 74488aba92bd..d73a9217b9da 100644 --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c | |||
@@ -468,7 +468,7 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context) | |||
468 | 468 | ||
469 | rtnl_lock(); | 469 | rtnl_lock(); |
470 | /* Create station interface by default */ | 470 | /* Create station interface by default */ |
471 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "mlan%d", | 471 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "mlan%d", NET_NAME_ENUM, |
472 | NL80211_IFTYPE_STATION, NULL, NULL); | 472 | NL80211_IFTYPE_STATION, NULL, NULL); |
473 | if (IS_ERR(wdev)) { | 473 | if (IS_ERR(wdev)) { |
474 | dev_err(adapter->dev, "cannot create default STA interface\n"); | 474 | dev_err(adapter->dev, "cannot create default STA interface\n"); |
@@ -477,7 +477,7 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context) | |||
477 | } | 477 | } |
478 | 478 | ||
479 | if (driver_mode & MWIFIEX_DRIVER_MODE_UAP) { | 479 | if (driver_mode & MWIFIEX_DRIVER_MODE_UAP) { |
480 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "uap%d", | 480 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "uap%d", NET_NAME_ENUM, |
481 | NL80211_IFTYPE_AP, NULL, NULL); | 481 | NL80211_IFTYPE_AP, NULL, NULL); |
482 | if (IS_ERR(wdev)) { | 482 | if (IS_ERR(wdev)) { |
483 | dev_err(adapter->dev, "cannot create AP interface\n"); | 483 | dev_err(adapter->dev, "cannot create AP interface\n"); |
@@ -487,7 +487,7 @@ static void mwifiex_fw_dpc(const struct firmware *firmware, void *context) | |||
487 | } | 487 | } |
488 | 488 | ||
489 | if (driver_mode & MWIFIEX_DRIVER_MODE_P2P) { | 489 | if (driver_mode & MWIFIEX_DRIVER_MODE_P2P) { |
490 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "p2p%d", | 490 | wdev = mwifiex_add_virtual_intf(adapter->wiphy, "p2p%d", NET_NAME_ENUM, |
491 | NL80211_IFTYPE_P2P_CLIENT, NULL, | 491 | NL80211_IFTYPE_P2P_CLIENT, NULL, |
492 | NULL); | 492 | NULL); |
493 | if (IS_ERR(wdev)) { | 493 | if (IS_ERR(wdev)) { |
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h index 16be45e9a66a..ad8db61aeeef 100644 --- a/drivers/net/wireless/mwifiex/main.h +++ b/drivers/net/wireless/mwifiex/main.h | |||
@@ -1322,6 +1322,7 @@ u8 mwifiex_chan_type_to_sec_chan_offset(enum nl80211_channel_type chan_type); | |||
1322 | 1322 | ||
1323 | struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, | 1323 | struct wireless_dev *mwifiex_add_virtual_intf(struct wiphy *wiphy, |
1324 | const char *name, | 1324 | const char *name, |
1325 | unsigned char name_assign_type, | ||
1325 | enum nl80211_iftype type, | 1326 | enum nl80211_iftype type, |
1326 | u32 *flags, | 1327 | u32 *flags, |
1327 | struct vif_params *params); | 1328 | struct vif_params *params); |
diff --git a/drivers/net/wireless/orinoco/Kconfig b/drivers/net/wireless/orinoco/Kconfig index 6d831d4d1b5f..f6fa3f4e294f 100644 --- a/drivers/net/wireless/orinoco/Kconfig +++ b/drivers/net/wireless/orinoco/Kconfig | |||
@@ -2,7 +2,7 @@ config HERMES | |||
2 | tristate "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)" | 2 | tristate "Hermes chipset 802.11b support (Orinoco/Prism2/Symbol)" |
3 | depends on (PPC_PMAC || PCI || PCMCIA) | 3 | depends on (PPC_PMAC || PCI || PCMCIA) |
4 | depends on CFG80211 | 4 | depends on CFG80211 |
5 | select CFG80211_WEXT | 5 | select CFG80211_WEXT_EXPORT |
6 | select WIRELESS_EXT | 6 | select WIRELESS_EXT |
7 | select WEXT_SPY | 7 | select WEXT_SPY |
8 | select WEXT_PRIV | 8 | select WEXT_PRIV |
diff --git a/drivers/net/wireless/ti/wl18xx/event.c b/drivers/net/wireless/ti/wl18xx/event.c index c28f06854195..548bb9e7e91e 100644 --- a/drivers/net/wireless/ti/wl18xx/event.c +++ b/drivers/net/wireless/ti/wl18xx/event.c | |||
@@ -77,7 +77,7 @@ static int wlcore_smart_config_sync_event(struct wl1271 *wl, u8 sync_channel, | |||
77 | wl1271_debug(DEBUG_EVENT, | 77 | wl1271_debug(DEBUG_EVENT, |
78 | "SMART_CONFIG_SYNC_EVENT_ID, freq: %d (chan: %d band %d)", | 78 | "SMART_CONFIG_SYNC_EVENT_ID, freq: %d (chan: %d band %d)", |
79 | freq, sync_channel, sync_band); | 79 | freq, sync_channel, sync_band); |
80 | skb = cfg80211_vendor_event_alloc(wl->hw->wiphy, 20, | 80 | skb = cfg80211_vendor_event_alloc(wl->hw->wiphy, NULL, 20, |
81 | WLCORE_VENDOR_EVENT_SC_SYNC, | 81 | WLCORE_VENDOR_EVENT_SC_SYNC, |
82 | GFP_KERNEL); | 82 | GFP_KERNEL); |
83 | 83 | ||
@@ -98,7 +98,7 @@ static int wlcore_smart_config_decode_event(struct wl1271 *wl, | |||
98 | wl1271_debug(DEBUG_EVENT, "SMART_CONFIG_DECODE_EVENT_ID"); | 98 | wl1271_debug(DEBUG_EVENT, "SMART_CONFIG_DECODE_EVENT_ID"); |
99 | wl1271_dump_ascii(DEBUG_EVENT, "SSID:", ssid, ssid_len); | 99 | wl1271_dump_ascii(DEBUG_EVENT, "SSID:", ssid, ssid_len); |
100 | 100 | ||
101 | skb = cfg80211_vendor_event_alloc(wl->hw->wiphy, | 101 | skb = cfg80211_vendor_event_alloc(wl->hw->wiphy, NULL, |
102 | ssid_len + pwd_len + 20, | 102 | ssid_len + pwd_len + 20, |
103 | WLCORE_VENDOR_EVENT_SC_DECODE, | 103 | WLCORE_VENDOR_EVENT_SC_DECODE, |
104 | GFP_KERNEL); | 104 | GFP_KERNEL); |