mirror-linux/net/wireless
Johannes Berg 307a6525c8 wifi: cfg80211: fix CQM for non-range use
commit 7e7efdda6a upstream.

My prior race fix here broke CQM when ranges aren't used, as
the reporting worker now requires the cqm_config to be set in
the wdev, but isn't set when there's no range configured.

Rather than continuing to special-case the range version, set
the cqm_config always and configure accordingly, also tracking
if range was used or not to be able to clear the configuration
appropriately with the same API, which was actually not right
if both were implemented by a driver for some reason, as is
the case with mac80211 (though there the implementations are
equivalent so it doesn't matter.)

Also, the original multiple-RSSI commit lost checking for the
callback, so might have potentially crashed if a driver had
neither implementation, and userspace tried to use it despite
not being advertised as supported.

Cc: stable@vger.kernel.org
Fixes: 4a4b816950 ("cfg80211: Accept multiple RSSI thresholds for CQM")
Fixes: 37c20b2eff ("wifi: cfg80211: fix cqm_config access race")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-08 08:51:16 +01:00
..
certs
.gitignore
Kconfig
Makefile
ap.c wifi: cfg80211: do some rework towards MLO link APIs 2022-06-20 12:54:58 +02:00
chan.c wifi: nl80211: relax wdev mutex check in wdev_chandef() 2022-07-01 11:42:58 +02:00
core.c wifi: cfg80211: add flush functions for wiphy work 2023-11-20 11:51:51 +01:00
core.h wifi: cfg80211: fix CQM for non-range use 2023-12-08 08:51:16 +01:00
debugfs.c wifi: cfg80211: debugfs: fix return type in ht40allow_map_read() 2022-08-25 10:04:46 +02:00
debugfs.h
ethtool.c wifi: cfg80211: use strscpy to replace strlcpy 2022-07-15 11:43:12 +02:00
ibss.c wifi: cfg80211: Add link_id parameter to various key operations for MLO 2022-08-25 10:41:05 +02:00
lib80211.c
lib80211_crypt_ccmp.c wifi: use struct_group to copy addresses 2022-09-03 16:40:06 +02:00
lib80211_crypt_tkip.c
lib80211_crypt_wep.c
mesh.c wifi: cfg80211: do some rework towards MLO link APIs 2022-06-20 12:54:58 +02:00
mlme.c wifi: cfg80211: reject auth/assoc to AP with our address 2023-09-23 11:11:03 +02:00
nl80211.c wifi: cfg80211: fix CQM for non-range use 2023-12-08 08:51:16 +01:00
nl80211.h wifi: cfg80211/nl80211: move rx management data into a struct 2022-07-22 14:28:26 +02:00
ocb.c wifi: cfg80211: ocb: don't leave if not joined 2023-09-23 11:11:03 +02:00
of.c
pmsr.c
radiotap.c
rdev-ops.h wifi: cfg80211: fix link del callback to call correct handler 2023-06-21 16:00:59 +02:00
reg.c wifi: cfg80211: fix regulatory disconnect for non-MLO 2023-07-19 16:22:09 +02:00
reg.h
scan.c wifi: cfg80211: Fix 6GHz scan configuration 2023-10-25 12:03:10 +02:00
sme.c wifi: cfg80211: hold wiphy lock in auto-disconnect 2023-10-10 22:00:39 +02:00
sysfs.c wifi: cfg80211: add flush functions for wiphy work 2023-11-20 11:51:51 +01:00
sysfs.h
trace.c
trace.h wifi: cfg80211: Add link_id to cfg80211_ch_switch_started_notify() 2022-08-25 11:07:26 +02:00
util.c wifi: cfg80211: remove links only on AP 2023-09-13 09:42:24 +02:00
wext-compat.c wifi: cfg80211: Add link_id parameter to various key operations for MLO 2022-08-25 10:41:05 +02:00
wext-compat.h
wext-core.c wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point() 2023-07-27 08:50:35 +02:00
wext-priv.c
wext-proc.c
wext-sme.c wifi: cfg80211: do some rework towards MLO link APIs 2022-06-20 12:54:58 +02:00
wext-spy.c