Commit ed4a707d authored by Jérôme Pouiller's avatar Jérôme Pouiller Committed by Greg Kroah-Hartman
Browse files

staging: wfx: ensure that probe requests are filtered when AP



Device is able to automatically reply to probe request (therefore, the
probe requests are not forwarded to host). This feature is enabled by
wfx_start_ap(). However, further calls to wfx_configure_filter() can
disable it.

So, relocate the handling of probe request filtering in
wfx_configure_filter().

Note that wfx_configure_filter() is always called by mac80211 when an AP
start.

Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200415161147.69738-11-Jerome.Pouiller@silabs.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0f55a72e
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -241,6 +241,13 @@ void wfx_configure_filter(struct ieee80211_hw *hw,
		else
			wvif->filter_bssid = true;

		// In AP mode, chip can reply to probe request itself
		if (*total_flags & FIF_PROBE_REQ &&
		    wvif->vif->type == NL80211_IFTYPE_AP) {
			dev_dbg(wdev->dev, "do not forward probe request in AP mode\n");
			*total_flags &= ~FIF_PROBE_REQ;
		}

		if (*total_flags & FIF_PROBE_REQ)
			wfx_fwd_probe_req(wvif, true);
		else
@@ -577,7 +584,6 @@ int wfx_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
	wvif->state = WFX_STATE_AP;
	wfx_update_filtering(wvif);
	wfx_upload_ap_templates(wvif);
	wfx_fwd_probe_req(wvif, false);
	hif_start(wvif, &vif->bss_conf, wvif->channel);
	return 0;
}