From: Jérôme Pouiller Date: Wed, 15 Apr 2020 16:11:37 +0000 (+0200) Subject: staging: wfx: ensure that probe requests are filtered when AP X-Git-Tag: v5.8-rc1~106^2~281 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed4a707d2643de1afb938095558e3e61f6c3badd;p=thirdparty%2Fkernel%2Flinux.git 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: Jérôme Pouiller Link: https://lore.kernel.org/r/20200415161147.69738-11-Jerome.Pouiller@silabs.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index 0b2ef2d3023bf..b785b1b7d5836 100644 --- a/drivers/staging/wfx/sta.c +++ b/drivers/staging/wfx/sta.c @@ -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; }