]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mac80211: fix driver RSSI event calculations
authorJohannes Berg <johannes.berg@intel.com>
Fri, 28 Aug 2015 08:52:53 +0000 (10:52 +0200)
committerZefan Li <lizefan@huawei.com>
Wed, 26 Oct 2016 15:15:22 +0000 (23:15 +0800)
commit 8ec6d97871f37e4743678ea4a455bd59580aa0f4 upstream.

The ifmgd->ave_beacon_signal value cannot be taken as is for
comparisons, it must be divided by since it's represented
like that for better accuracy of the EWMA calculations. This
would lead to invalid driver RSSI events. Fix the used value.

Fixes: 615f7b9bb1f8 ("mac80211: add driver RSSI threshold events")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
net/mac80211/mlme.c

index abc31d7bd2a59ad83ca3e6c0b31512715f91069a..1dae14232a5228af9b5d15b1e3ea6694c5b9651a 100644 (file)
@@ -2384,7 +2384,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
 
        if (ifmgd->rssi_min_thold != ifmgd->rssi_max_thold &&
            ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
-               int sig = ifmgd->ave_beacon_signal;
+               int sig = ifmgd->ave_beacon_signal / 16;
                int last_sig = ifmgd->last_ave_beacon_signal;
 
                /*