• Johannes Berg's avatar
    wifi: cfg80211: fix CQM for non-range use · 7e7efdda
    Johannes Berg authored
    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: 4a4b8169 ("cfg80211: Accept multiple RSSI thresholds for CQM")
    Fixes: 37c20b2e ("wifi: cfg80211: fix cqm_config access race")
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    7e7efdda
core.h 17.7 KB