diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-06-25 15:15:14 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-06-25 15:26:36 -0400 |
commit | 855df36de365fb3b49eb06c352015e3d215b43fe (patch) | |
tree | 2a76f128eb457e1bacb585260b3e03f72b03cc1e /drivers/net/wireless | |
parent | d6067f0e17eb1de7d9b1d792f67d17c6e894b770 (diff) | |
parent | 97dc94f1d933c9df2c0b327066ea130c0e92083f (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Diffstat (limited to 'drivers/net/wireless')
23 files changed, 114 insertions, 80 deletions
diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c index d48776e4f343..334c2ece855a 100644 --- a/drivers/net/wireless/at76c50x-usb.c +++ b/drivers/net/wireless/at76c50x-usb.c | |||
@@ -1955,8 +1955,9 @@ static void at76_dwork_hw_scan(struct work_struct *work) | |||
1955 | 1955 | ||
1956 | static int at76_hw_scan(struct ieee80211_hw *hw, | 1956 | static int at76_hw_scan(struct ieee80211_hw *hw, |
1957 | struct ieee80211_vif *vif, | 1957 | struct ieee80211_vif *vif, |
1958 | struct cfg80211_scan_request *req) | 1958 | struct ieee80211_scan_request *hw_req) |
1959 | { | 1959 | { |
1960 | struct cfg80211_scan_request *req = &hw_req->req; | ||
1960 | struct at76_priv *priv = hw->priv; | 1961 | struct at76_priv *priv = hw->priv; |
1961 | struct at76_req_scan scan; | 1962 | struct at76_req_scan scan; |
1962 | u8 *ssid = NULL; | 1963 | u8 *ssid = NULL; |
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index a21080028c54..b8314a534972 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c | |||
@@ -3137,10 +3137,11 @@ exit: | |||
3137 | 3137 | ||
3138 | static int ath10k_hw_scan(struct ieee80211_hw *hw, | 3138 | static int ath10k_hw_scan(struct ieee80211_hw *hw, |
3139 | struct ieee80211_vif *vif, | 3139 | struct ieee80211_vif *vif, |
3140 | struct cfg80211_scan_request *req) | 3140 | struct ieee80211_scan_request *hw_req) |
3141 | { | 3141 | { |
3142 | struct ath10k *ar = hw->priv; | 3142 | struct ath10k *ar = hw->priv; |
3143 | struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); | 3143 | struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); |
3144 | struct cfg80211_scan_request *req = &hw_req->req; | ||
3144 | struct wmi_start_scan_arg arg; | 3145 | struct wmi_start_scan_arg arg; |
3145 | int ret = 0; | 3146 | int ret = 0; |
3146 | int i; | 3147 | int i; |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 83cb39efb636..f5727c7a53b8 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -2409,8 +2409,9 @@ void ath_offchannel_timer(unsigned long data) | |||
2409 | } | 2409 | } |
2410 | 2410 | ||
2411 | static int ath9k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 2411 | static int ath9k_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
2412 | struct cfg80211_scan_request *req) | 2412 | struct ieee80211_scan_request *hw_req) |
2413 | { | 2413 | { |
2414 | struct cfg80211_scan_request *req = &hw_req->req; | ||
2414 | struct ath_softc *sc = hw->priv; | 2415 | struct ath_softc *sc = hw->priv; |
2415 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); | 2416 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); |
2416 | int ret = 0; | 2417 | int ret = 0; |
diff --git a/drivers/net/wireless/cw1200/scan.c b/drivers/net/wireless/cw1200/scan.c index 9afcd4ce3368..b2fb6c632092 100644 --- a/drivers/net/wireless/cw1200/scan.c +++ b/drivers/net/wireless/cw1200/scan.c | |||
@@ -53,9 +53,10 @@ static int cw1200_scan_start(struct cw1200_common *priv, struct wsm_scan *scan) | |||
53 | 53 | ||
54 | int cw1200_hw_scan(struct ieee80211_hw *hw, | 54 | int cw1200_hw_scan(struct ieee80211_hw *hw, |
55 | struct ieee80211_vif *vif, | 55 | struct ieee80211_vif *vif, |
56 | struct cfg80211_scan_request *req) | 56 | struct ieee80211_scan_request *hw_req) |
57 | { | 57 | { |
58 | struct cw1200_common *priv = hw->priv; | 58 | struct cw1200_common *priv = hw->priv; |
59 | struct cfg80211_scan_request *req = &hw_req->req; | ||
59 | struct wsm_template_frame frame = { | 60 | struct wsm_template_frame frame = { |
60 | .frame_type = WSM_FRAME_TYPE_PROBE_REQUEST, | 61 | .frame_type = WSM_FRAME_TYPE_PROBE_REQUEST, |
61 | }; | 62 | }; |
diff --git a/drivers/net/wireless/cw1200/scan.h b/drivers/net/wireless/cw1200/scan.h index 5a8296ccfa82..cc75459e5784 100644 --- a/drivers/net/wireless/cw1200/scan.h +++ b/drivers/net/wireless/cw1200/scan.h | |||
@@ -41,7 +41,7 @@ struct cw1200_scan { | |||
41 | 41 | ||
42 | int cw1200_hw_scan(struct ieee80211_hw *hw, | 42 | int cw1200_hw_scan(struct ieee80211_hw *hw, |
43 | struct ieee80211_vif *vif, | 43 | struct ieee80211_vif *vif, |
44 | struct cfg80211_scan_request *req); | 44 | struct ieee80211_scan_request *hw_req); |
45 | void cw1200_scan_work(struct work_struct *work); | 45 | void cw1200_scan_work(struct work_struct *work); |
46 | void cw1200_scan_timeout(struct work_struct *work); | 46 | void cw1200_scan_timeout(struct work_struct *work); |
47 | void cw1200_clear_recent_scan_work(struct work_struct *work); | 47 | void cw1200_clear_recent_scan_work(struct work_struct *work); |
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c index ecc674627e6e..03de7467aecf 100644 --- a/drivers/net/wireless/iwlegacy/common.c +++ b/drivers/net/wireless/iwlegacy/common.c | |||
@@ -1572,8 +1572,9 @@ il_scan_initiate(struct il_priv *il, struct ieee80211_vif *vif) | |||
1572 | 1572 | ||
1573 | int | 1573 | int |
1574 | il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 1574 | il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
1575 | struct cfg80211_scan_request *req) | 1575 | struct ieee80211_scan_request *hw_req) |
1576 | { | 1576 | { |
1577 | struct cfg80211_scan_request *req = &hw_req->req; | ||
1577 | struct il_priv *il = hw->priv; | 1578 | struct il_priv *il = hw->priv; |
1578 | int ret; | 1579 | int ret; |
1579 | 1580 | ||
diff --git a/drivers/net/wireless/iwlegacy/common.h b/drivers/net/wireless/iwlegacy/common.h index ea5c0f863c4e..5b972798bdff 100644 --- a/drivers/net/wireless/iwlegacy/common.h +++ b/drivers/net/wireless/iwlegacy/common.h | |||
@@ -1787,7 +1787,7 @@ int il_scan_cancel(struct il_priv *il); | |||
1787 | int il_scan_cancel_timeout(struct il_priv *il, unsigned long ms); | 1787 | int il_scan_cancel_timeout(struct il_priv *il, unsigned long ms); |
1788 | void il_force_scan_end(struct il_priv *il); | 1788 | void il_force_scan_end(struct il_priv *il); |
1789 | int il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 1789 | int il_mac_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
1790 | struct cfg80211_scan_request *req); | 1790 | struct ieee80211_scan_request *hw_req); |
1791 | void il_internal_short_hw_scan(struct il_priv *il); | 1791 | void il_internal_short_hw_scan(struct il_priv *il); |
1792 | int il_force_reset(struct il_priv *il, bool external); | 1792 | int il_force_reset(struct il_priv *il, bool external); |
1793 | u16 il_fill_probe_req(struct il_priv *il, struct ieee80211_mgmt *frame, | 1793 | u16 il_fill_probe_req(struct il_priv *il, struct ieee80211_mgmt *frame, |
diff --git a/drivers/net/wireless/iwlwifi/dvm/mac80211.c b/drivers/net/wireless/iwlwifi/dvm/mac80211.c index 29af7b51e370..afb98f4fdaf3 100644 --- a/drivers/net/wireless/iwlwifi/dvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/dvm/mac80211.c | |||
@@ -1495,9 +1495,10 @@ static int iwlagn_mac_change_interface(struct ieee80211_hw *hw, | |||
1495 | 1495 | ||
1496 | static int iwlagn_mac_hw_scan(struct ieee80211_hw *hw, | 1496 | static int iwlagn_mac_hw_scan(struct ieee80211_hw *hw, |
1497 | struct ieee80211_vif *vif, | 1497 | struct ieee80211_vif *vif, |
1498 | struct cfg80211_scan_request *req) | 1498 | struct ieee80211_scan_request *hw_req) |
1499 | { | 1499 | { |
1500 | struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); | 1500 | struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); |
1501 | struct cfg80211_scan_request *req = &hw_req->req; | ||
1501 | int ret; | 1502 | int ret; |
1502 | 1503 | ||
1503 | IWL_DEBUG_MAC80211(priv, "enter\n"); | 1504 | IWL_DEBUG_MAC80211(priv, "enter\n"); |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 7215f5980186..7dd363dd3ad3 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -1537,9 +1537,10 @@ static void iwl_mvm_bss_info_changed(struct ieee80211_hw *hw, | |||
1537 | 1537 | ||
1538 | static int iwl_mvm_mac_hw_scan(struct ieee80211_hw *hw, | 1538 | static int iwl_mvm_mac_hw_scan(struct ieee80211_hw *hw, |
1539 | struct ieee80211_vif *vif, | 1539 | struct ieee80211_vif *vif, |
1540 | struct cfg80211_scan_request *req) | 1540 | struct ieee80211_scan_request *hw_req) |
1541 | { | 1541 | { |
1542 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); | 1542 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); |
1543 | struct cfg80211_scan_request *req = &hw_req->req; | ||
1543 | int ret; | 1544 | int ret; |
1544 | 1545 | ||
1545 | if (req->n_channels == 0 || req->n_channels > MAX_NUM_SCAN_CHANNELS) | 1546 | if (req->n_channels == 0 || req->n_channels > MAX_NUM_SCAN_CHANNELS) |
@@ -1827,7 +1828,7 @@ static void iwl_mvm_mac_mgd_prepare_tx(struct ieee80211_hw *hw, | |||
1827 | static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw, | 1828 | static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw, |
1828 | struct ieee80211_vif *vif, | 1829 | struct ieee80211_vif *vif, |
1829 | struct cfg80211_sched_scan_request *req, | 1830 | struct cfg80211_sched_scan_request *req, |
1830 | struct ieee80211_sched_scan_ies *ies) | 1831 | struct ieee80211_scan_ies *ies) |
1831 | { | 1832 | { |
1832 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); | 1833 | struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw); |
1833 | int ret; | 1834 | int ret; |
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h index fcc6c29482d0..97630f9a7cb9 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h | |||
@@ -854,7 +854,7 @@ int iwl_mvm_rx_scan_offload_complete_notif(struct iwl_mvm *mvm, | |||
854 | int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm, | 854 | int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm, |
855 | struct ieee80211_vif *vif, | 855 | struct ieee80211_vif *vif, |
856 | struct cfg80211_sched_scan_request *req, | 856 | struct cfg80211_sched_scan_request *req, |
857 | struct ieee80211_sched_scan_ies *ies); | 857 | struct ieee80211_scan_ies *ies); |
858 | int iwl_mvm_config_sched_scan_profiles(struct iwl_mvm *mvm, | 858 | int iwl_mvm_config_sched_scan_profiles(struct iwl_mvm *mvm, |
859 | struct cfg80211_sched_scan_request *req); | 859 | struct cfg80211_sched_scan_request *req); |
860 | int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm, | 860 | int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm, |
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c index 4b6c7d4bd199..3206fa097255 100644 --- a/drivers/net/wireless/iwlwifi/mvm/scan.c +++ b/drivers/net/wireless/iwlwifi/mvm/scan.c | |||
@@ -204,7 +204,8 @@ static void iwl_mvm_scan_fill_channels(struct iwl_scan_cmd *cmd, | |||
204 | */ | 204 | */ |
205 | static u16 iwl_mvm_fill_probe_req(struct ieee80211_mgmt *frame, const u8 *ta, | 205 | static u16 iwl_mvm_fill_probe_req(struct ieee80211_mgmt *frame, const u8 *ta, |
206 | int n_ssids, const u8 *ssid, int ssid_len, | 206 | int n_ssids, const u8 *ssid, int ssid_len, |
207 | const u8 *ie, int ie_len, | 207 | const u8 *band_ie, int band_ie_len, |
208 | const u8 *common_ie, int common_ie_len, | ||
208 | int left) | 209 | int left) |
209 | { | 210 | { |
210 | int len = 0; | 211 | int len = 0; |
@@ -244,12 +245,19 @@ static u16 iwl_mvm_fill_probe_req(struct ieee80211_mgmt *frame, const u8 *ta, | |||
244 | 245 | ||
245 | len += ssid_len + 2; | 246 | len += ssid_len + 2; |
246 | 247 | ||
247 | if (WARN_ON(left < ie_len)) | 248 | if (WARN_ON(left < band_ie_len + common_ie_len)) |
248 | return len; | 249 | return len; |
249 | 250 | ||
250 | if (ie && ie_len) { | 251 | if (band_ie && band_ie_len) { |
251 | memcpy(pos, ie, ie_len); | 252 | memcpy(pos, band_ie, band_ie_len); |
252 | len += ie_len; | 253 | pos += band_ie_len; |
254 | len += band_ie_len; | ||
255 | } | ||
256 | |||
257 | if (common_ie && common_ie_len) { | ||
258 | memcpy(pos, common_ie, common_ie_len); | ||
259 | pos += common_ie_len; | ||
260 | len += common_ie_len; | ||
253 | } | 261 | } |
254 | 262 | ||
255 | return (u16)len; | 263 | return (u16)len; |
@@ -382,7 +390,7 @@ int iwl_mvm_scan_request(struct iwl_mvm *mvm, | |||
382 | (struct ieee80211_mgmt *)cmd->data, | 390 | (struct ieee80211_mgmt *)cmd->data, |
383 | vif->addr, | 391 | vif->addr, |
384 | req->n_ssids, ssid, ssid_len, | 392 | req->n_ssids, ssid, ssid_len, |
385 | req->ie, req->ie_len, | 393 | req->ie, req->ie_len, NULL, 0, |
386 | mvm->fw->ucode_capa.max_probe_length)); | 394 | mvm->fw->ucode_capa.max_probe_length)); |
387 | 395 | ||
388 | iwl_mvm_scan_fill_channels(cmd, req, basic_ssid, ¶ms); | 396 | iwl_mvm_scan_fill_channels(cmd, req, basic_ssid, ¶ms); |
@@ -561,7 +569,7 @@ int iwl_mvm_rx_scan_offload_complete_notif(struct iwl_mvm *mvm, | |||
561 | 569 | ||
562 | static void iwl_scan_offload_build_tx_cmd(struct iwl_mvm *mvm, | 570 | static void iwl_scan_offload_build_tx_cmd(struct iwl_mvm *mvm, |
563 | struct ieee80211_vif *vif, | 571 | struct ieee80211_vif *vif, |
564 | struct ieee80211_sched_scan_ies *ies, | 572 | struct ieee80211_scan_ies *ies, |
565 | enum ieee80211_band band, | 573 | enum ieee80211_band band, |
566 | struct iwl_tx_cmd *cmd, | 574 | struct iwl_tx_cmd *cmd, |
567 | u8 *data) | 575 | u8 *data) |
@@ -577,7 +585,8 @@ static void iwl_scan_offload_build_tx_cmd(struct iwl_mvm *mvm, | |||
577 | cmd_len = iwl_mvm_fill_probe_req((struct ieee80211_mgmt *)data, | 585 | cmd_len = iwl_mvm_fill_probe_req((struct ieee80211_mgmt *)data, |
578 | vif->addr, | 586 | vif->addr, |
579 | 1, NULL, 0, | 587 | 1, NULL, 0, |
580 | ies->ie[band], ies->len[band], | 588 | ies->ies[band], ies->len[band], |
589 | ies->common_ies, ies->common_ie_len, | ||
581 | SCAN_OFFLOAD_PROBE_REQ_SIZE); | 590 | SCAN_OFFLOAD_PROBE_REQ_SIZE); |
582 | cmd->len = cpu_to_le16(cmd_len); | 591 | cmd->len = cpu_to_le16(cmd_len); |
583 | } | 592 | } |
@@ -735,7 +744,7 @@ static void iwl_build_channel_cfg(struct iwl_mvm *mvm, | |||
735 | int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm, | 744 | int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm, |
736 | struct ieee80211_vif *vif, | 745 | struct ieee80211_vif *vif, |
737 | struct cfg80211_sched_scan_request *req, | 746 | struct cfg80211_sched_scan_request *req, |
738 | struct ieee80211_sched_scan_ies *ies) | 747 | struct ieee80211_scan_ies *ies) |
739 | { | 748 | { |
740 | int band_2ghz = mvm->nvm_data->bands[IEEE80211_BAND_2GHZ].n_channels; | 749 | int band_2ghz = mvm->nvm_data->bands[IEEE80211_BAND_2GHZ].n_channels; |
741 | int band_5ghz = mvm->nvm_data->bands[IEEE80211_BAND_5GHZ].n_channels; | 750 | int band_5ghz = mvm->nvm_data->bands[IEEE80211_BAND_5GHZ].n_channels; |
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index a312c653d116..eba51460a5de 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
@@ -781,6 +781,36 @@ static void mac80211_hwsim_monitor_ack(struct ieee80211_channel *chan, | |||
781 | netif_rx(skb); | 781 | netif_rx(skb); |
782 | } | 782 | } |
783 | 783 | ||
784 | struct mac80211_hwsim_addr_match_data { | ||
785 | u8 addr[ETH_ALEN]; | ||
786 | bool ret; | ||
787 | }; | ||
788 | |||
789 | static void mac80211_hwsim_addr_iter(void *data, u8 *mac, | ||
790 | struct ieee80211_vif *vif) | ||
791 | { | ||
792 | struct mac80211_hwsim_addr_match_data *md = data; | ||
793 | |||
794 | if (memcmp(mac, md->addr, ETH_ALEN) == 0) | ||
795 | md->ret = true; | ||
796 | } | ||
797 | |||
798 | static bool mac80211_hwsim_addr_match(struct mac80211_hwsim_data *data, | ||
799 | const u8 *addr) | ||
800 | { | ||
801 | struct mac80211_hwsim_addr_match_data md = { | ||
802 | .ret = false, | ||
803 | }; | ||
804 | |||
805 | memcpy(md.addr, addr, ETH_ALEN); | ||
806 | |||
807 | ieee80211_iterate_active_interfaces_atomic(data->hw, | ||
808 | IEEE80211_IFACE_ITER_NORMAL, | ||
809 | mac80211_hwsim_addr_iter, | ||
810 | &md); | ||
811 | |||
812 | return md.ret; | ||
813 | } | ||
784 | 814 | ||
785 | static bool hwsim_ps_rx_ok(struct mac80211_hwsim_data *data, | 815 | static bool hwsim_ps_rx_ok(struct mac80211_hwsim_data *data, |
786 | struct sk_buff *skb) | 816 | struct sk_buff *skb) |
@@ -798,8 +828,7 @@ static bool hwsim_ps_rx_ok(struct mac80211_hwsim_data *data, | |||
798 | /* Allow unicast frames to own address if there is a pending | 828 | /* Allow unicast frames to own address if there is a pending |
799 | * PS-Poll */ | 829 | * PS-Poll */ |
800 | if (data->ps_poll_pending && | 830 | if (data->ps_poll_pending && |
801 | memcmp(data->hw->wiphy->perm_addr, skb->data + 4, | 831 | mac80211_hwsim_addr_match(data, skb->data + 4)) { |
802 | ETH_ALEN) == 0) { | ||
803 | data->ps_poll_pending = false; | 832 | data->ps_poll_pending = false; |
804 | return true; | 833 | return true; |
805 | } | 834 | } |
@@ -809,39 +838,6 @@ static bool hwsim_ps_rx_ok(struct mac80211_hwsim_data *data, | |||
809 | return true; | 838 | return true; |
810 | } | 839 | } |
811 | 840 | ||
812 | |||
813 | struct mac80211_hwsim_addr_match_data { | ||
814 | bool ret; | ||
815 | const u8 *addr; | ||
816 | }; | ||
817 | |||
818 | static void mac80211_hwsim_addr_iter(void *data, u8 *mac, | ||
819 | struct ieee80211_vif *vif) | ||
820 | { | ||
821 | struct mac80211_hwsim_addr_match_data *md = data; | ||
822 | if (memcmp(mac, md->addr, ETH_ALEN) == 0) | ||
823 | md->ret = true; | ||
824 | } | ||
825 | |||
826 | |||
827 | static bool mac80211_hwsim_addr_match(struct mac80211_hwsim_data *data, | ||
828 | const u8 *addr) | ||
829 | { | ||
830 | struct mac80211_hwsim_addr_match_data md; | ||
831 | |||
832 | if (memcmp(addr, data->hw->wiphy->perm_addr, ETH_ALEN) == 0) | ||
833 | return true; | ||
834 | |||
835 | md.ret = false; | ||
836 | md.addr = addr; | ||
837 | ieee80211_iterate_active_interfaces_atomic(data->hw, | ||
838 | IEEE80211_IFACE_ITER_NORMAL, | ||
839 | mac80211_hwsim_addr_iter, | ||
840 | &md); | ||
841 | |||
842 | return md.ret; | ||
843 | } | ||
844 | |||
845 | static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, | 841 | static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, |
846 | struct sk_buff *my_skb, | 842 | struct sk_buff *my_skb, |
847 | int dst_portid) | 843 | int dst_portid) |
@@ -1740,9 +1736,10 @@ static void hw_scan_work(struct work_struct *work) | |||
1740 | 1736 | ||
1741 | static int mac80211_hwsim_hw_scan(struct ieee80211_hw *hw, | 1737 | static int mac80211_hwsim_hw_scan(struct ieee80211_hw *hw, |
1742 | struct ieee80211_vif *vif, | 1738 | struct ieee80211_vif *vif, |
1743 | struct cfg80211_scan_request *req) | 1739 | struct ieee80211_scan_request *hw_req) |
1744 | { | 1740 | { |
1745 | struct mac80211_hwsim_data *hwsim = hw->priv; | 1741 | struct mac80211_hwsim_data *hwsim = hw->priv; |
1742 | struct cfg80211_scan_request *req = &hw_req->req; | ||
1746 | 1743 | ||
1747 | mutex_lock(&hwsim->mutex); | 1744 | mutex_lock(&hwsim->mutex); |
1748 | if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { | 1745 | if (WARN_ON(hwsim->tmp_chan || hwsim->hw_scan_request)) { |
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c index 8e7b9c9696f6..e33a0347d3e2 100644 --- a/drivers/net/wireless/mwifiex/cfg80211.c +++ b/drivers/net/wireless/mwifiex/cfg80211.c | |||
@@ -2609,7 +2609,8 @@ static int | |||
2609 | mwifiex_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, | 2609 | mwifiex_cfg80211_tdls_mgmt(struct wiphy *wiphy, struct net_device *dev, |
2610 | const u8 *peer, u8 action_code, u8 dialog_token, | 2610 | const u8 *peer, u8 action_code, u8 dialog_token, |
2611 | u16 status_code, u32 peer_capability, | 2611 | u16 status_code, u32 peer_capability, |
2612 | const u8 *extra_ies, size_t extra_ies_len) | 2612 | bool initiator, const u8 *extra_ies, |
2613 | size_t extra_ies_len) | ||
2613 | { | 2614 | { |
2614 | struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); | 2615 | struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); |
2615 | int ret; | 2616 | int ret; |
diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c index 4e782f18ae34..38234851457e 100644 --- a/drivers/net/wireless/ti/wl1251/main.c +++ b/drivers/net/wireless/ti/wl1251/main.c | |||
@@ -991,8 +991,9 @@ out: | |||
991 | 991 | ||
992 | static int wl1251_op_hw_scan(struct ieee80211_hw *hw, | 992 | static int wl1251_op_hw_scan(struct ieee80211_hw *hw, |
993 | struct ieee80211_vif *vif, | 993 | struct ieee80211_vif *vif, |
994 | struct cfg80211_scan_request *req) | 994 | struct ieee80211_scan_request *hw_req) |
995 | { | 995 | { |
996 | struct cfg80211_scan_request *req = &hw_req->req; | ||
996 | struct wl1251 *wl = hw->priv; | 997 | struct wl1251 *wl = hw->priv; |
997 | struct sk_buff *skb; | 998 | struct sk_buff *skb; |
998 | size_t ssid_len = 0; | 999 | size_t ssid_len = 0; |
diff --git a/drivers/net/wireless/ti/wl12xx/scan.c b/drivers/net/wireless/ti/wl12xx/scan.c index 7541bd1a4a4b..0c0d5cd98514 100644 --- a/drivers/net/wireless/ti/wl12xx/scan.c +++ b/drivers/net/wireless/ti/wl12xx/scan.c | |||
@@ -156,7 +156,7 @@ static int wl1271_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
156 | cmd->params.role_id, band, | 156 | cmd->params.role_id, band, |
157 | wl->scan.ssid, wl->scan.ssid_len, | 157 | wl->scan.ssid, wl->scan.ssid_len, |
158 | wl->scan.req->ie, | 158 | wl->scan.req->ie, |
159 | wl->scan.req->ie_len, false); | 159 | wl->scan.req->ie_len, NULL, 0, false); |
160 | if (ret < 0) { | 160 | if (ret < 0) { |
161 | wl1271_error("PROBE request template failed"); | 161 | wl1271_error("PROBE request template failed"); |
162 | goto out; | 162 | goto out; |
@@ -317,7 +317,7 @@ static void wl12xx_adjust_channels(struct wl1271_cmd_sched_scan_config *cmd, | |||
317 | int wl1271_scan_sched_scan_config(struct wl1271 *wl, | 317 | int wl1271_scan_sched_scan_config(struct wl1271 *wl, |
318 | struct wl12xx_vif *wlvif, | 318 | struct wl12xx_vif *wlvif, |
319 | struct cfg80211_sched_scan_request *req, | 319 | struct cfg80211_sched_scan_request *req, |
320 | struct ieee80211_sched_scan_ies *ies) | 320 | struct ieee80211_scan_ies *ies) |
321 | { | 321 | { |
322 | struct wl1271_cmd_sched_scan_config *cfg = NULL; | 322 | struct wl1271_cmd_sched_scan_config *cfg = NULL; |
323 | struct wlcore_scan_channels *cfg_channels = NULL; | 323 | struct wlcore_scan_channels *cfg_channels = NULL; |
@@ -378,8 +378,11 @@ int wl1271_scan_sched_scan_config(struct wl1271 *wl, | |||
378 | wlvif->role_id, band, | 378 | wlvif->role_id, band, |
379 | req->ssids[0].ssid, | 379 | req->ssids[0].ssid, |
380 | req->ssids[0].ssid_len, | 380 | req->ssids[0].ssid_len, |
381 | ies->ie[band], | 381 | ies->ies[band], |
382 | ies->len[band], true); | 382 | ies->len[band], |
383 | ies->common_ies, | ||
384 | ies->common_ie_len, | ||
385 | true); | ||
383 | if (ret < 0) { | 386 | if (ret < 0) { |
384 | wl1271_error("2.4GHz PROBE request template failed"); | 387 | wl1271_error("2.4GHz PROBE request template failed"); |
385 | goto out; | 388 | goto out; |
@@ -392,8 +395,11 @@ int wl1271_scan_sched_scan_config(struct wl1271 *wl, | |||
392 | wlvif->role_id, band, | 395 | wlvif->role_id, band, |
393 | req->ssids[0].ssid, | 396 | req->ssids[0].ssid, |
394 | req->ssids[0].ssid_len, | 397 | req->ssids[0].ssid_len, |
395 | ies->ie[band], | 398 | ies->ies[band], |
396 | ies->len[band], true); | 399 | ies->len[band], |
400 | ies->common_ies, | ||
401 | ies->common_ie_len, | ||
402 | true); | ||
397 | if (ret < 0) { | 403 | if (ret < 0) { |
398 | wl1271_error("5GHz PROBE request template failed"); | 404 | wl1271_error("5GHz PROBE request template failed"); |
399 | goto out; | 405 | goto out; |
@@ -449,7 +455,7 @@ out_free: | |||
449 | 455 | ||
450 | int wl12xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 456 | int wl12xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
451 | struct cfg80211_sched_scan_request *req, | 457 | struct cfg80211_sched_scan_request *req, |
452 | struct ieee80211_sched_scan_ies *ies) | 458 | struct ieee80211_scan_ies *ies) |
453 | { | 459 | { |
454 | int ret; | 460 | int ret; |
455 | 461 | ||
diff --git a/drivers/net/wireless/ti/wl12xx/scan.h b/drivers/net/wireless/ti/wl12xx/scan.h index 264af7ac2785..427f9af85a00 100644 --- a/drivers/net/wireless/ti/wl12xx/scan.h +++ b/drivers/net/wireless/ti/wl12xx/scan.h | |||
@@ -135,6 +135,6 @@ int wl12xx_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); | |||
135 | void wl12xx_scan_completed(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 135 | void wl12xx_scan_completed(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
136 | int wl12xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 136 | int wl12xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
137 | struct cfg80211_sched_scan_request *req, | 137 | struct cfg80211_sched_scan_request *req, |
138 | struct ieee80211_sched_scan_ies *ies); | 138 | struct ieee80211_scan_ies *ies); |
139 | void wl12xx_scan_sched_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 139 | void wl12xx_scan_sched_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
140 | #endif | 140 | #endif |
diff --git a/drivers/net/wireless/ti/wl18xx/scan.c b/drivers/net/wireless/ti/wl18xx/scan.c index 2b642f8c9266..98666f235a12 100644 --- a/drivers/net/wireless/ti/wl18xx/scan.c +++ b/drivers/net/wireless/ti/wl18xx/scan.c | |||
@@ -113,6 +113,8 @@ static int wl18xx_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
113 | req->ssids ? req->ssids[0].ssid_len : 0, | 113 | req->ssids ? req->ssids[0].ssid_len : 0, |
114 | req->ie, | 114 | req->ie, |
115 | req->ie_len, | 115 | req->ie_len, |
116 | NULL, | ||
117 | 0, | ||
116 | false); | 118 | false); |
117 | if (ret < 0) { | 119 | if (ret < 0) { |
118 | wl1271_error("2.4GHz PROBE request template failed"); | 120 | wl1271_error("2.4GHz PROBE request template failed"); |
@@ -128,6 +130,8 @@ static int wl18xx_scan_send(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
128 | req->ssids ? req->ssids[0].ssid_len : 0, | 130 | req->ssids ? req->ssids[0].ssid_len : 0, |
129 | req->ie, | 131 | req->ie, |
130 | req->ie_len, | 132 | req->ie_len, |
133 | NULL, | ||
134 | 0, | ||
131 | false); | 135 | false); |
132 | if (ret < 0) { | 136 | if (ret < 0) { |
133 | wl1271_error("5GHz PROBE request template failed"); | 137 | wl1271_error("5GHz PROBE request template failed"); |
@@ -161,7 +165,7 @@ static | |||
161 | int wl18xx_scan_sched_scan_config(struct wl1271 *wl, | 165 | int wl18xx_scan_sched_scan_config(struct wl1271 *wl, |
162 | struct wl12xx_vif *wlvif, | 166 | struct wl12xx_vif *wlvif, |
163 | struct cfg80211_sched_scan_request *req, | 167 | struct cfg80211_sched_scan_request *req, |
164 | struct ieee80211_sched_scan_ies *ies) | 168 | struct ieee80211_scan_ies *ies) |
165 | { | 169 | { |
166 | struct wl18xx_cmd_scan_params *cmd; | 170 | struct wl18xx_cmd_scan_params *cmd; |
167 | struct wlcore_scan_channels *cmd_channels = NULL; | 171 | struct wlcore_scan_channels *cmd_channels = NULL; |
@@ -237,8 +241,10 @@ int wl18xx_scan_sched_scan_config(struct wl1271 *wl, | |||
237 | cmd->role_id, band, | 241 | cmd->role_id, band, |
238 | req->ssids ? req->ssids[0].ssid : NULL, | 242 | req->ssids ? req->ssids[0].ssid : NULL, |
239 | req->ssids ? req->ssids[0].ssid_len : 0, | 243 | req->ssids ? req->ssids[0].ssid_len : 0, |
240 | ies->ie[band], | 244 | ies->ies[band], |
241 | ies->len[band], | 245 | ies->len[band], |
246 | ies->common_ies, | ||
247 | ies->common_ie_len, | ||
242 | true); | 248 | true); |
243 | if (ret < 0) { | 249 | if (ret < 0) { |
244 | wl1271_error("2.4GHz PROBE request template failed"); | 250 | wl1271_error("2.4GHz PROBE request template failed"); |
@@ -252,8 +258,10 @@ int wl18xx_scan_sched_scan_config(struct wl1271 *wl, | |||
252 | cmd->role_id, band, | 258 | cmd->role_id, band, |
253 | req->ssids ? req->ssids[0].ssid : NULL, | 259 | req->ssids ? req->ssids[0].ssid : NULL, |
254 | req->ssids ? req->ssids[0].ssid_len : 0, | 260 | req->ssids ? req->ssids[0].ssid_len : 0, |
255 | ies->ie[band], | 261 | ies->ies[band], |
256 | ies->len[band], | 262 | ies->len[band], |
263 | ies->common_ies, | ||
264 | ies->common_ie_len, | ||
257 | true); | 265 | true); |
258 | if (ret < 0) { | 266 | if (ret < 0) { |
259 | wl1271_error("5GHz PROBE request template failed"); | 267 | wl1271_error("5GHz PROBE request template failed"); |
@@ -277,7 +285,7 @@ out: | |||
277 | 285 | ||
278 | int wl18xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 286 | int wl18xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
279 | struct cfg80211_sched_scan_request *req, | 287 | struct cfg80211_sched_scan_request *req, |
280 | struct ieee80211_sched_scan_ies *ies) | 288 | struct ieee80211_scan_ies *ies) |
281 | { | 289 | { |
282 | return wl18xx_scan_sched_scan_config(wl, wlvif, req, ies); | 290 | return wl18xx_scan_sched_scan_config(wl, wlvif, req, ies); |
283 | } | 291 | } |
diff --git a/drivers/net/wireless/ti/wl18xx/scan.h b/drivers/net/wireless/ti/wl18xx/scan.h index eadee42689d1..2e636aa5dba9 100644 --- a/drivers/net/wireless/ti/wl18xx/scan.h +++ b/drivers/net/wireless/ti/wl18xx/scan.h | |||
@@ -122,6 +122,6 @@ int wl18xx_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); | |||
122 | void wl18xx_scan_completed(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 122 | void wl18xx_scan_completed(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
123 | int wl18xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 123 | int wl18xx_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
124 | struct cfg80211_sched_scan_request *req, | 124 | struct cfg80211_sched_scan_request *req, |
125 | struct ieee80211_sched_scan_ies *ies); | 125 | struct ieee80211_scan_ies *ies); |
126 | void wl18xx_scan_sched_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 126 | void wl18xx_scan_sched_scan_stop(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
127 | #endif | 127 | #endif |
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c index 40dc30f4faaa..e269c0a57017 100644 --- a/drivers/net/wireless/ti/wlcore/cmd.c +++ b/drivers/net/wireless/ti/wlcore/cmd.c | |||
@@ -1124,7 +1124,8 @@ out: | |||
1124 | int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 1124 | int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
1125 | u8 role_id, u8 band, | 1125 | u8 role_id, u8 band, |
1126 | const u8 *ssid, size_t ssid_len, | 1126 | const u8 *ssid, size_t ssid_len, |
1127 | const u8 *ie, size_t ie_len, bool sched_scan) | 1127 | const u8 *ie0, size_t ie0_len, const u8 *ie1, |
1128 | size_t ie1_len, bool sched_scan) | ||
1128 | { | 1129 | { |
1129 | struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); | 1130 | struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); |
1130 | struct sk_buff *skb; | 1131 | struct sk_buff *skb; |
@@ -1136,13 +1137,15 @@ int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
1136 | wl1271_debug(DEBUG_SCAN, "build probe request band %d", band); | 1137 | wl1271_debug(DEBUG_SCAN, "build probe request band %d", band); |
1137 | 1138 | ||
1138 | skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, | 1139 | skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, |
1139 | ie_len); | 1140 | ie0_len + ie1_len); |
1140 | if (!skb) { | 1141 | if (!skb) { |
1141 | ret = -ENOMEM; | 1142 | ret = -ENOMEM; |
1142 | goto out; | 1143 | goto out; |
1143 | } | 1144 | } |
1144 | if (ie_len) | 1145 | if (ie0_len) |
1145 | memcpy(skb_put(skb, ie_len), ie, ie_len); | 1146 | memcpy(skb_put(skb, ie0_len), ie0, ie0_len); |
1147 | if (ie1_len) | ||
1148 | memcpy(skb_put(skb, ie1_len), ie1, ie1_len); | ||
1146 | 1149 | ||
1147 | if (sched_scan && | 1150 | if (sched_scan && |
1148 | (wl->quirks & WLCORE_QUIRK_DUAL_PROBE_TMPL)) { | 1151 | (wl->quirks & WLCORE_QUIRK_DUAL_PROBE_TMPL)) { |
diff --git a/drivers/net/wireless/ti/wlcore/cmd.h b/drivers/net/wireless/ti/wlcore/cmd.h index b084830a61cf..6788d7356ca5 100644 --- a/drivers/net/wireless/ti/wlcore/cmd.h +++ b/drivers/net/wireless/ti/wlcore/cmd.h | |||
@@ -64,7 +64,8 @@ int wl1271_cmd_build_ps_poll(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
64 | int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 64 | int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
65 | u8 role_id, u8 band, | 65 | u8 role_id, u8 band, |
66 | const u8 *ssid, size_t ssid_len, | 66 | const u8 *ssid, size_t ssid_len, |
67 | const u8 *ie, size_t ie_len, bool sched_scan); | 67 | const u8 *ie, size_t ie_len, const u8 *common_ie, |
68 | size_t common_ie_len, bool sched_scan); | ||
68 | struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl, | 69 | struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl, |
69 | struct wl12xx_vif *wlvif, | 70 | struct wl12xx_vif *wlvif, |
70 | struct sk_buff *skb); | 71 | struct sk_buff *skb); |
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 3d6028e62750..48f83868f9cb 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c | |||
@@ -3540,8 +3540,9 @@ out: | |||
3540 | 3540 | ||
3541 | static int wl1271_op_hw_scan(struct ieee80211_hw *hw, | 3541 | static int wl1271_op_hw_scan(struct ieee80211_hw *hw, |
3542 | struct ieee80211_vif *vif, | 3542 | struct ieee80211_vif *vif, |
3543 | struct cfg80211_scan_request *req) | 3543 | struct ieee80211_scan_request *hw_req) |
3544 | { | 3544 | { |
3545 | struct cfg80211_scan_request *req = &hw_req->req; | ||
3545 | struct wl1271 *wl = hw->priv; | 3546 | struct wl1271 *wl = hw->priv; |
3546 | int ret; | 3547 | int ret; |
3547 | u8 *ssid = NULL; | 3548 | u8 *ssid = NULL; |
@@ -3636,7 +3637,7 @@ out: | |||
3636 | static int wl1271_op_sched_scan_start(struct ieee80211_hw *hw, | 3637 | static int wl1271_op_sched_scan_start(struct ieee80211_hw *hw, |
3637 | struct ieee80211_vif *vif, | 3638 | struct ieee80211_vif *vif, |
3638 | struct cfg80211_sched_scan_request *req, | 3639 | struct cfg80211_sched_scan_request *req, |
3639 | struct ieee80211_sched_scan_ies *ies) | 3640 | struct ieee80211_scan_ies *ies) |
3640 | { | 3641 | { |
3641 | struct wl1271 *wl = hw->priv; | 3642 | struct wl1271 *wl = hw->priv; |
3642 | struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); | 3643 | struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif); |
diff --git a/drivers/net/wireless/ti/wlcore/scan.h b/drivers/net/wireless/ti/wlcore/scan.h index a6ab24b5c0f9..4dadd0c62cde 100644 --- a/drivers/net/wireless/ti/wlcore/scan.h +++ b/drivers/net/wireless/ti/wlcore/scan.h | |||
@@ -37,7 +37,7 @@ void wl1271_scan_complete_work(struct work_struct *work); | |||
37 | int wl1271_scan_sched_scan_config(struct wl1271 *wl, | 37 | int wl1271_scan_sched_scan_config(struct wl1271 *wl, |
38 | struct wl12xx_vif *wlvif, | 38 | struct wl12xx_vif *wlvif, |
39 | struct cfg80211_sched_scan_request *req, | 39 | struct cfg80211_sched_scan_request *req, |
40 | struct ieee80211_sched_scan_ies *ies); | 40 | struct ieee80211_scan_ies *ies); |
41 | int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 41 | int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
42 | void wlcore_scan_sched_scan_results(struct wl1271 *wl); | 42 | void wlcore_scan_sched_scan_results(struct wl1271 *wl); |
43 | 43 | ||
diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h index 95a54504f0cc..71320509b56d 100644 --- a/drivers/net/wireless/ti/wlcore/wlcore.h +++ b/drivers/net/wireless/ti/wlcore/wlcore.h | |||
@@ -95,7 +95,7 @@ struct wlcore_ops { | |||
95 | int (*scan_stop)(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 95 | int (*scan_stop)(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
96 | int (*sched_scan_start)(struct wl1271 *wl, struct wl12xx_vif *wlvif, | 96 | int (*sched_scan_start)(struct wl1271 *wl, struct wl12xx_vif *wlvif, |
97 | struct cfg80211_sched_scan_request *req, | 97 | struct cfg80211_sched_scan_request *req, |
98 | struct ieee80211_sched_scan_ies *ies); | 98 | struct ieee80211_scan_ies *ies); |
99 | void (*sched_scan_stop)(struct wl1271 *wl, struct wl12xx_vif *wlvif); | 99 | void (*sched_scan_stop)(struct wl1271 *wl, struct wl12xx_vif *wlvif); |
100 | int (*get_spare_blocks)(struct wl1271 *wl, bool is_gem); | 100 | int (*get_spare_blocks)(struct wl1271 *wl, bool is_gem); |
101 | int (*set_key)(struct wl1271 *wl, enum set_key_cmd cmd, | 101 | int (*set_key)(struct wl1271 *wl, enum set_key_cmd cmd, |