aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/net80211/ieee80211_output.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index 07f7349461ac..ab3e3142ad2c 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -2472,6 +2472,10 @@ ieee80211_probereq_ie(struct ieee80211vap *vap, struct ieee80211com *ic,
if (!alloc && len > *frmlen)
return (ENOBUFS);
+ /* For HW scans we usually do not pass in the SSID as IE. */
+ if (ssidlen == -1)
+ len -= (2 + IEEE80211_NWID_LEN);
+
if (alloc) {
frm = malloc(len, M_80211_VAP, M_WAITOK | M_ZERO);
*frmp = frm;
@@ -2479,10 +2483,7 @@ ieee80211_probereq_ie(struct ieee80211vap *vap, struct ieee80211com *ic,
} else
frm = *frmp;
- /* For HW scans we usually do not pass in the SSID as IE. */
- if (ssidlen == -1)
- len -= (2 + IEEE80211_NWID_LEN);
- else
+ if (ssidlen != -1)
frm = ieee80211_add_ssid(frm, ssid, ssidlen);
rs = ieee80211_get_suprates(ic, ic->ic_curchan);
frm = ieee80211_add_rates(frm, rs);