mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-04 01:57:59 +00:00
mac80211: fix drv_config_iface_filter() behaviour
There are two bugs with this, first, it shouldn't be called on an interface that's down, and secondly, it should then be called when the interface comes up. Note that the currently only user (iwlwifi) doesn't seem to care about either of these scenarios. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Link: https://lore.kernel.org/r/20200417111830.401d82c7a0bf.I5dc7d718816460c2d8d89c7af6c215f9e2b3078f@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
1db364c886
commit
90e8f58dfc
@ -3421,12 +3421,15 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
|
||||
if (!local->open_count)
|
||||
break;
|
||||
|
||||
if (sdata->vif.probe_req_reg == 1)
|
||||
drv_config_iface_filter(local, sdata, FIF_PROBE_REQ,
|
||||
FIF_PROBE_REQ);
|
||||
else if (sdata->vif.probe_req_reg == 0)
|
||||
drv_config_iface_filter(local, sdata, 0,
|
||||
FIF_PROBE_REQ);
|
||||
if (ieee80211_sdata_running(sdata)) {
|
||||
if (sdata->vif.probe_req_reg == 1)
|
||||
drv_config_iface_filter(local, sdata,
|
||||
FIF_PROBE_REQ,
|
||||
FIF_PROBE_REQ);
|
||||
else if (sdata->vif.probe_req_reg == 0)
|
||||
drv_config_iface_filter(local, sdata, 0,
|
||||
FIF_PROBE_REQ);
|
||||
}
|
||||
|
||||
ieee80211_configure_filter(local);
|
||||
break;
|
||||
|
@ -644,6 +644,11 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
|
||||
local->fif_probe_req++;
|
||||
}
|
||||
|
||||
if (sdata->vif.probe_req_reg)
|
||||
drv_config_iface_filter(local, sdata,
|
||||
FIF_PROBE_REQ,
|
||||
FIF_PROBE_REQ);
|
||||
|
||||
if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE &&
|
||||
sdata->vif.type != NL80211_IFTYPE_NAN)
|
||||
changed |= ieee80211_reset_erp_info(sdata);
|
||||
|
Loading…
x
Reference in New Issue
Block a user