Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ee31080 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

mac80211: restrict advertised HW scan rates



Advertise only user-requested bitrates in a HW scan.
Note that the hw_scan API doesn't currently have a
way of asking for a specific probe request bitrate,
so we might end up using a bitrate that we don't
advertise as supported. I'll fix that later.

Also add a hexdump printk to hwsim to verify this.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 04b7dcf9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1130,6 +1130,8 @@ static int mac80211_hwsim_hw_scan(struct ieee80211_hw *hw,
	for (i = 0; i < req->n_channels; i++)
		printk(KERN_DEBUG "hwsim hw_scan freq %d\n",
			req->channels[i]->center_freq);
	print_hex_dump(KERN_DEBUG, "scan IEs: ", DUMP_PREFIX_OFFSET,
			16, 1, req->ie, req->ie_len, 1);

	ieee80211_queue_delayed_work(hw, &hsd->w, 2 * HZ);

+3 −2
Original line number Diff line number Diff line
@@ -228,6 +228,7 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb)
static bool ieee80211_prep_hw_scan(struct ieee80211_local *local)
{
	struct cfg80211_scan_request *req = local->scan_req;
	struct ieee80211_sub_if_data *sdata = local->scan_sdata;
	enum ieee80211_band band;
	int i, ielen, n_chans;

@@ -251,8 +252,8 @@ static bool ieee80211_prep_hw_scan(struct ieee80211_local *local)
	local->hw_scan_req->n_channels = n_chans;

	ielen = ieee80211_build_preq_ies(local, (u8 *)local->hw_scan_req->ie,
					 req->ie, req->ie_len, band, (u32) -1,
					 0);
					 req->ie, req->ie_len, band,
					 sdata->rc_rateidx_mask[band], 0);
	local->hw_scan_req->ie_len = ielen;

	return true;