aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-06-12 16:24:31 -0400
committerJohannes Berg <johannes.berg@intel.com>2014-11-19 12:46:09 -0500
commita344d6778a98e4c19ac871f369e399e6356edcb3 (patch)
tree57680bfd10fc013c7a996fbea7212be900f089db /drivers
parent6ea0a69ca21bbddab5b3979c2190013b0263e749 (diff)
mac80211: allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR
Allow drivers to support NL80211_SCAN_FLAG_RANDOM_ADDR with software based scanning and generate a random MAC address for them for every scan request with the flag. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath5k/mac80211-ops.c6
-rw-r--r--drivers/net/wireless/ath/ath9k/channel.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c7
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c7
-rw-r--r--drivers/net/wireless/ath/wcn36xx/main.c7
-rw-r--r--drivers/net/wireless/b43/main.c7
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c7
-rw-r--r--drivers/net/wireless/cw1200/scan.c2
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c9
-rw-r--r--drivers/net/wireless/mwl8k.c7
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h7
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c7
-rw-r--r--drivers/net/wireless/rtlwifi/core.c7
-rw-r--r--drivers/net/wireless/ti/wl1251/main.c2
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.c2
-rw-r--r--drivers/staging/vt6656/main_usb.c7
16 files changed, 64 insertions, 29 deletions
diff --git a/drivers/net/wireless/ath/ath5k/mac80211-ops.c b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
index ab2709a43768..19eab2a69ad5 100644
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
@@ -547,7 +547,9 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
547 547
548 548
549static void 549static void
550ath5k_sw_scan_start(struct ieee80211_hw *hw) 550ath5k_sw_scan_start(struct ieee80211_hw *hw,
551 struct ieee80211_vif *vif,
552 const u8 *mac_addr)
551{ 553{
552 struct ath5k_hw *ah = hw->priv; 554 struct ath5k_hw *ah = hw->priv;
553 if (!ah->assoc) 555 if (!ah->assoc)
@@ -556,7 +558,7 @@ ath5k_sw_scan_start(struct ieee80211_hw *hw)
556 558
557 559
558static void 560static void
559ath5k_sw_scan_complete(struct ieee80211_hw *hw) 561ath5k_sw_scan_complete(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
560{ 562{
561 struct ath5k_hw *ah = hw->priv; 563 struct ath5k_hw *ah = hw->priv;
562 ath5k_hw_set_ledstate(ah, ah->assoc ? 564 ath5k_hw_set_ledstate(ah, ah->assoc ?
diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index 794d52016437..206665059d66 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -963,7 +963,7 @@ static void ath_scan_send_probe(struct ath_softc *sc,
963 struct ieee80211_tx_info *info; 963 struct ieee80211_tx_info *info;
964 int band = sc->offchannel.chan.chandef.chan->band; 964 int band = sc->offchannel.chan.chandef.chan->band;
965 965
966 skb = ieee80211_probereq_get(sc->hw, vif, 966 skb = ieee80211_probereq_get(sc->hw, vif->addr,
967 ssid->ssid, ssid->ssid_len, req->ie_len); 967 ssid->ssid, ssid->ssid_len, req->ie_len);
968 if (!skb) 968 if (!skb)
969 return; 969 return;
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
index c7d12efaa86a..92d5a6c5a225 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
@@ -1691,7 +1691,9 @@ static int ath9k_htc_ampdu_action(struct ieee80211_hw *hw,
1691 return ret; 1691 return ret;
1692} 1692}
1693 1693
1694static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw) 1694static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw,
1695 struct ieee80211_vif *vif,
1696 const u8 *mac_addr)
1695{ 1697{
1696 struct ath9k_htc_priv *priv = hw->priv; 1698 struct ath9k_htc_priv *priv = hw->priv;
1697 struct ath_common *common = ath9k_hw_common(priv->ah); 1699 struct ath_common *common = ath9k_hw_common(priv->ah);
@@ -1705,7 +1707,8 @@ static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw)
1705 mutex_unlock(&priv->mutex); 1707 mutex_unlock(&priv->mutex);
1706} 1708}
1707 1709
1708static void ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw) 1710static void ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw,
1711 struct ieee80211_vif *vif)
1709{ 1712{
1710 struct ath9k_htc_priv *priv = hw->priv; 1713 struct ath9k_htc_priv *priv = hw->priv;
1711 struct ath_common *common = ath9k_hw_common(priv->ah); 1714 struct ath_common *common = ath9k_hw_common(priv->ah);
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 5f16630f26ce..027ad715ffb2 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -2180,14 +2180,17 @@ static int ath9k_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant)
2180 return 0; 2180 return 0;
2181} 2181}
2182 2182
2183static void ath9k_sw_scan_start(struct ieee80211_hw *hw) 2183static void ath9k_sw_scan_start(struct ieee80211_hw *hw,
2184 struct ieee80211_vif *vif,
2185 const u8 *mac_addr)
2184{ 2186{
2185 struct ath_softc *sc = hw->priv; 2187 struct ath_softc *sc = hw->priv;
2186 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 2188 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
2187 set_bit(ATH_OP_SCANNING, &common->op_flags); 2189 set_bit(ATH_OP_SCANNING, &common->op_flags);
2188} 2190}
2189 2191
2190static void ath9k_sw_scan_complete(struct ieee80211_hw *hw) 2192static void ath9k_sw_scan_complete(struct ieee80211_hw *hw,
2193 struct ieee80211_vif *vif)
2191{ 2194{
2192 struct ath_softc *sc = hw->priv; 2195 struct ath_softc *sc = hw->priv;
2193 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 2196 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index b71d2b33532d..267c35d1f699 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -494,7 +494,9 @@ out:
494 return ret; 494 return ret;
495} 495}
496 496
497static void wcn36xx_sw_scan_start(struct ieee80211_hw *hw) 497static void wcn36xx_sw_scan_start(struct ieee80211_hw *hw,
498 struct ieee80211_vif *vif,
499 const u8 *mac_addr)
498{ 500{
499 struct wcn36xx *wcn = hw->priv; 501 struct wcn36xx *wcn = hw->priv;
500 502
@@ -502,7 +504,8 @@ static void wcn36xx_sw_scan_start(struct ieee80211_hw *hw)
502 wcn36xx_smd_start_scan(wcn); 504 wcn36xx_smd_start_scan(wcn);
503} 505}
504 506
505static void wcn36xx_sw_scan_complete(struct ieee80211_hw *hw) 507static void wcn36xx_sw_scan_complete(struct ieee80211_hw *hw,
508 struct ieee80211_vif *vif)
506{ 509{
507 struct wcn36xx *wcn = hw->priv; 510 struct wcn36xx *wcn = hw->priv;
508 511
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 5d4173ee55bc..47731cb0d815 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -5110,7 +5110,9 @@ static void b43_op_sta_notify(struct ieee80211_hw *hw,
5110 B43_WARN_ON(!vif || wl->vif != vif); 5110 B43_WARN_ON(!vif || wl->vif != vif);
5111} 5111}
5112 5112
5113static void b43_op_sw_scan_start_notifier(struct ieee80211_hw *hw) 5113static void b43_op_sw_scan_start_notifier(struct ieee80211_hw *hw,
5114 struct ieee80211_vif *vif,
5115 const u8 *mac_addr)
5114{ 5116{
5115 struct b43_wl *wl = hw_to_b43_wl(hw); 5117 struct b43_wl *wl = hw_to_b43_wl(hw);
5116 struct b43_wldev *dev; 5118 struct b43_wldev *dev;
@@ -5124,7 +5126,8 @@ static void b43_op_sw_scan_start_notifier(struct ieee80211_hw *hw)
5124 mutex_unlock(&wl->mutex); 5126 mutex_unlock(&wl->mutex);
5125} 5127}
5126 5128
5127static void b43_op_sw_scan_complete_notifier(struct ieee80211_hw *hw) 5129static void b43_op_sw_scan_complete_notifier(struct ieee80211_hw *hw,
5130 struct ieee80211_vif *vif)
5128{ 5131{
5129 struct b43_wl *wl = hw_to_b43_wl(hw); 5132 struct b43_wl *wl = hw_to_b43_wl(hw);
5130 struct b43_wldev *dev; 5133 struct b43_wldev *dev;
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
index 43c71bfaa474..f95b52442281 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
@@ -764,7 +764,9 @@ brcms_ops_configure_filter(struct ieee80211_hw *hw,
764 return; 764 return;
765} 765}
766 766
767static void brcms_ops_sw_scan_start(struct ieee80211_hw *hw) 767static void brcms_ops_sw_scan_start(struct ieee80211_hw *hw,
768 struct ieee80211_vif *vif,
769 const u8 *mac_addr)
768{ 770{
769 struct brcms_info *wl = hw->priv; 771 struct brcms_info *wl = hw->priv;
770 spin_lock_bh(&wl->lock); 772 spin_lock_bh(&wl->lock);
@@ -773,7 +775,8 @@ static void brcms_ops_sw_scan_start(struct ieee80211_hw *hw)
773 return; 775 return;
774} 776}
775 777
776static void brcms_ops_sw_scan_complete(struct ieee80211_hw *hw) 778static void brcms_ops_sw_scan_complete(struct ieee80211_hw *hw,
779 struct ieee80211_vif *vif)
777{ 780{
778 struct brcms_info *wl = hw->priv; 781 struct brcms_info *wl = hw->priv;
779 spin_lock_bh(&wl->lock); 782 spin_lock_bh(&wl->lock);
diff --git a/drivers/net/wireless/cw1200/scan.c b/drivers/net/wireless/cw1200/scan.c
index b2fb6c632092..f2e276faca70 100644
--- a/drivers/net/wireless/cw1200/scan.c
+++ b/drivers/net/wireless/cw1200/scan.c
@@ -78,7 +78,7 @@ int cw1200_hw_scan(struct ieee80211_hw *hw,
78 if (req->n_ssids > WSM_SCAN_MAX_NUM_OF_SSIDS) 78 if (req->n_ssids > WSM_SCAN_MAX_NUM_OF_SSIDS)
79 return -EINVAL; 79 return -EINVAL;
80 80
81 frame.skb = ieee80211_probereq_get(hw, priv->vif, NULL, 0, 81 frame.skb = ieee80211_probereq_get(hw, priv->vif->addr, NULL, 0,
82 req->ie_len); 82 req->ie_len);
83 if (!frame.skb) 83 if (!frame.skb)
84 return -ENOMEM; 84 return -ENOMEM;
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 58f11bb0896f..6daaad595ea4 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -1802,7 +1802,7 @@ static void hw_scan_work(struct work_struct *work)
1802 struct sk_buff *probe; 1802 struct sk_buff *probe;
1803 1803
1804 probe = ieee80211_probereq_get(hwsim->hw, 1804 probe = ieee80211_probereq_get(hwsim->hw,
1805 hwsim->hw_scan_vif, 1805 hwsim->hw_scan_vif->addr,
1806 req->ssids[i].ssid, 1806 req->ssids[i].ssid,
1807 req->ssids[i].ssid_len, 1807 req->ssids[i].ssid_len,
1808 req->ie_len); 1808 req->ie_len);
@@ -1866,7 +1866,9 @@ static void mac80211_hwsim_cancel_hw_scan(struct ieee80211_hw *hw,
1866 mutex_unlock(&hwsim->mutex); 1866 mutex_unlock(&hwsim->mutex);
1867} 1867}
1868 1868
1869static void mac80211_hwsim_sw_scan(struct ieee80211_hw *hw) 1869static void mac80211_hwsim_sw_scan(struct ieee80211_hw *hw,
1870 struct ieee80211_vif *vif,
1871 const u8 *mac_addr)
1870{ 1872{
1871 struct mac80211_hwsim_data *hwsim = hw->priv; 1873 struct mac80211_hwsim_data *hwsim = hw->priv;
1872 1874
@@ -1884,7 +1886,8 @@ out:
1884 mutex_unlock(&hwsim->mutex); 1886 mutex_unlock(&hwsim->mutex);
1885} 1887}
1886 1888
1887static void mac80211_hwsim_sw_scan_complete(struct ieee80211_hw *hw) 1889static void mac80211_hwsim_sw_scan_complete(struct ieee80211_hw *hw,
1890 struct ieee80211_vif *vif)
1888{ 1891{
1889 struct mac80211_hwsim_data *hwsim = hw->priv; 1892 struct mac80211_hwsim_data *hwsim = hw->priv;
1890 1893
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index ef1104476bd8..b8d1e04aa9b9 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -5548,7 +5548,9 @@ mwl8k_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
5548 return rc; 5548 return rc;
5549} 5549}
5550 5550
5551static void mwl8k_sw_scan_start(struct ieee80211_hw *hw) 5551static void mwl8k_sw_scan_start(struct ieee80211_hw *hw,
5552 struct ieee80211_vif *vif,
5553 const u8 *mac_addr)
5552{ 5554{
5553 struct mwl8k_priv *priv = hw->priv; 5555 struct mwl8k_priv *priv = hw->priv;
5554 u8 tmp; 5556 u8 tmp;
@@ -5565,7 +5567,8 @@ static void mwl8k_sw_scan_start(struct ieee80211_hw *hw)
5565 priv->sw_scan_start = true; 5567 priv->sw_scan_start = true;
5566} 5568}
5567 5569
5568static void mwl8k_sw_scan_complete(struct ieee80211_hw *hw) 5570static void mwl8k_sw_scan_complete(struct ieee80211_hw *hw,
5571 struct ieee80211_vif *vif)
5569{ 5572{
5570 struct mwl8k_priv *priv = hw->priv; 5573 struct mwl8k_priv *priv = hw->priv;
5571 u8 tmp; 5574 u8 tmp;
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index d13f25cd70d5..1ff81afb672c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -1437,8 +1437,11 @@ int rt2x00mac_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1437 struct ieee80211_sta *sta); 1437 struct ieee80211_sta *sta);
1438int rt2x00mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 1438int rt2x00mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
1439 struct ieee80211_sta *sta); 1439 struct ieee80211_sta *sta);
1440void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw); 1440void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw,
1441void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw); 1441 struct ieee80211_vif *vif,
1442 const u8 *mac_addr);
1443void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw,
1444 struct ieee80211_vif *vif);
1442int rt2x00mac_get_stats(struct ieee80211_hw *hw, 1445int rt2x00mac_get_stats(struct ieee80211_hw *hw,
1443 struct ieee80211_low_level_stats *stats); 1446 struct ieee80211_low_level_stats *stats);
1444void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, 1447void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index ad6e5a8d1e10..cb40245a0695 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -568,7 +568,9 @@ int rt2x00mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
568} 568}
569EXPORT_SYMBOL_GPL(rt2x00mac_sta_remove); 569EXPORT_SYMBOL_GPL(rt2x00mac_sta_remove);
570 570
571void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw) 571void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw,
572 struct ieee80211_vif *vif,
573 const u8 *mac_addr)
572{ 574{
573 struct rt2x00_dev *rt2x00dev = hw->priv; 575 struct rt2x00_dev *rt2x00dev = hw->priv;
574 set_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); 576 set_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags);
@@ -576,7 +578,8 @@ void rt2x00mac_sw_scan_start(struct ieee80211_hw *hw)
576} 578}
577EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_start); 579EXPORT_SYMBOL_GPL(rt2x00mac_sw_scan_start);
578 580
579void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw) 581void rt2x00mac_sw_scan_complete(struct ieee80211_hw *hw,
582 struct ieee80211_vif *vif)
580{ 583{
581 struct rt2x00_dev *rt2x00dev = hw->priv; 584 struct rt2x00_dev *rt2x00dev = hw->priv;
582 clear_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags); 585 clear_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags);
diff --git a/drivers/net/wireless/rtlwifi/core.c b/drivers/net/wireless/rtlwifi/core.c
index f6179bc06086..884d90526f9e 100644
--- a/drivers/net/wireless/rtlwifi/core.c
+++ b/drivers/net/wireless/rtlwifi/core.c
@@ -1361,7 +1361,9 @@ static int rtl_op_ampdu_action(struct ieee80211_hw *hw,
1361 return 0; 1361 return 0;
1362} 1362}
1363 1363
1364static void rtl_op_sw_scan_start(struct ieee80211_hw *hw) 1364static void rtl_op_sw_scan_start(struct ieee80211_hw *hw,
1365 struct ieee80211_vif *vif,
1366 const u8 *mac_addr)
1365{ 1367{
1366 struct rtl_priv *rtlpriv = rtl_priv(hw); 1368 struct rtl_priv *rtlpriv = rtl_priv(hw);
1367 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 1369 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
@@ -1396,7 +1398,8 @@ static void rtl_op_sw_scan_start(struct ieee80211_hw *hw)
1396 rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_BACKUP_BAND0); 1398 rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_BACKUP_BAND0);
1397} 1399}
1398 1400
1399static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw) 1401static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw,
1402 struct ieee80211_vif *vif)
1400{ 1403{
1401 struct rtl_priv *rtlpriv = rtl_priv(hw); 1404 struct rtl_priv *rtlpriv = rtl_priv(hw);
1402 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 1405 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c
index 38234851457e..0b30a7b4d663 100644
--- a/drivers/net/wireless/ti/wl1251/main.c
+++ b/drivers/net/wireless/ti/wl1251/main.c
@@ -1029,7 +1029,7 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw,
1029 goto out_sleep; 1029 goto out_sleep;
1030 } 1030 }
1031 1031
1032 skb = ieee80211_probereq_get(wl->hw, wl->vif, ssid, ssid_len, 1032 skb = ieee80211_probereq_get(wl->hw, wl->vif->addr, ssid, ssid_len,
1033 req->ie_len); 1033 req->ie_len);
1034 if (!skb) { 1034 if (!skb) {
1035 ret = -ENOMEM; 1035 ret = -ENOMEM;
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index dd2e448c3e2b..b82661962d33 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -1145,7 +1145,7 @@ int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif,
1145 1145
1146 wl1271_debug(DEBUG_SCAN, "build probe request band %d", band); 1146 wl1271_debug(DEBUG_SCAN, "build probe request band %d", band);
1147 1147
1148 skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, 1148 skb = ieee80211_probereq_get(wl->hw, vif->addr, ssid, ssid_len,
1149 ie0_len + ie1_len); 1149 ie0_len + ie1_len);
1150 if (!skb) { 1150 if (!skb) {
1151 ret = -ENOMEM; 1151 ret = -ENOMEM;
diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
index 2fbff907ce8a..dbc311c3dc37 100644
--- a/drivers/staging/vt6656/main_usb.c
+++ b/drivers/staging/vt6656/main_usb.c
@@ -856,7 +856,9 @@ static int vnt_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
856 return 0; 856 return 0;
857} 857}
858 858
859static void vnt_sw_scan_start(struct ieee80211_hw *hw) 859static void vnt_sw_scan_start(struct ieee80211_hw *hw,
860 struct ieee80211_vif *vif,
861 const u8 *addr)
860{ 862{
861 struct vnt_private *priv = hw->priv; 863 struct vnt_private *priv = hw->priv;
862 864
@@ -865,7 +867,8 @@ static void vnt_sw_scan_start(struct ieee80211_hw *hw)
865 vnt_update_pre_ed_threshold(priv, true); 867 vnt_update_pre_ed_threshold(priv, true);
866} 868}
867 869
868static void vnt_sw_scan_complete(struct ieee80211_hw *hw) 870static void vnt_sw_scan_complete(struct ieee80211_hw *hw,
871 struct ieee80211_vif *vif)
869{ 872{
870 struct vnt_private *priv = hw->priv; 873 struct vnt_private *priv = hw->priv;
871 874