diff options
Diffstat (limited to 'drivers/net/wireless')
| -rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 7 | ||||
| -rw-r--r-- | drivers/net/wireless/ti/wl1251/main.c | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/ti/wlcore/cmd.c | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 2aa8a1aa1184..8a61dbd320e6 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
| @@ -1347,9 +1347,14 @@ static void hw_scan_work(struct work_struct *work) | |||
| 1347 | hwsim->hw_scan_vif, | 1347 | hwsim->hw_scan_vif, |
| 1348 | req->ssids[i].ssid, | 1348 | req->ssids[i].ssid, |
| 1349 | req->ssids[i].ssid_len, | 1349 | req->ssids[i].ssid_len, |
| 1350 | req->ie, req->ie_len); | 1350 | req->ie_len); |
| 1351 | if (!probe) | 1351 | if (!probe) |
| 1352 | continue; | 1352 | continue; |
| 1353 | |||
| 1354 | if (req->ie_len) | ||
| 1355 | memcpy(skb_put(probe, req->ie_len), req->ie, | ||
| 1356 | req->ie_len); | ||
| 1357 | |||
| 1353 | local_bh_disable(); | 1358 | local_bh_disable(); |
| 1354 | mac80211_hwsim_tx_frame(hwsim->hw, probe, | 1359 | mac80211_hwsim_tx_frame(hwsim->hw, probe, |
| 1355 | hwsim->tmp_chan); | 1360 | hwsim->tmp_chan); |
diff --git a/drivers/net/wireless/ti/wl1251/main.c b/drivers/net/wireless/ti/wl1251/main.c index 441cbccbd381..f47e8b0482ad 100644 --- a/drivers/net/wireless/ti/wl1251/main.c +++ b/drivers/net/wireless/ti/wl1251/main.c | |||
| @@ -896,11 +896,13 @@ static int wl1251_op_hw_scan(struct ieee80211_hw *hw, | |||
| 896 | goto out; | 896 | goto out; |
| 897 | 897 | ||
| 898 | skb = ieee80211_probereq_get(wl->hw, wl->vif, ssid, ssid_len, | 898 | skb = ieee80211_probereq_get(wl->hw, wl->vif, ssid, ssid_len, |
| 899 | req->ie, req->ie_len); | 899 | req->ie_len); |
| 900 | if (!skb) { | 900 | if (!skb) { |
| 901 | ret = -ENOMEM; | 901 | ret = -ENOMEM; |
| 902 | goto out; | 902 | goto out; |
| 903 | } | 903 | } |
| 904 | if (req->ie_len) | ||
| 905 | memcpy(skb_put(skb, req->ie_len), req->ie, req->ie_len); | ||
| 904 | 906 | ||
| 905 | ret = wl1251_cmd_template_set(wl, CMD_PROBE_REQ, skb->data, | 907 | ret = wl1251_cmd_template_set(wl, CMD_PROBE_REQ, skb->data, |
| 906 | skb->len); | 908 | skb->len); |
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c index eaef3f41b252..27f83f72a93b 100644 --- a/drivers/net/wireless/ti/wlcore/cmd.c +++ b/drivers/net/wireless/ti/wlcore/cmd.c | |||
| @@ -1038,11 +1038,13 @@ int wl12xx_cmd_build_probe_req(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
| 1038 | u16 template_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5; | 1038 | u16 template_id_5 = CMD_TEMPL_CFG_PROBE_REQ_5; |
| 1039 | 1039 | ||
| 1040 | skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, | 1040 | skb = ieee80211_probereq_get(wl->hw, vif, ssid, ssid_len, |
| 1041 | ie, ie_len); | 1041 | ie_len); |
| 1042 | if (!skb) { | 1042 | if (!skb) { |
| 1043 | ret = -ENOMEM; | 1043 | ret = -ENOMEM; |
| 1044 | goto out; | 1044 | goto out; |
| 1045 | } | 1045 | } |
| 1046 | if (ie_len) | ||
| 1047 | memcpy(skb_put(skb, ie_len), ie, ie_len); | ||
| 1046 | 1048 | ||
| 1047 | wl1271_dump(DEBUG_SCAN, "PROBE REQ: ", skb->data, skb->len); | 1049 | wl1271_dump(DEBUG_SCAN, "PROBE REQ: ", skb->data, skb->len); |
| 1048 | 1050 | ||
