]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mac80211: fix beacon interval calculation overflow
authorLachlan Hodges <lachlan.hodges@morsemicro.com>
Sat, 21 Jun 2025 12:32:09 +0000 (22:32 +1000)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 24 Jun 2025 07:04:55 +0000 (09:04 +0200)
As we are converting from TU to usecs, a beacon interval of
100*1024 usecs will lead to integer wrapping. To fix change
to use a u32.

Fixes: 057d5f4ba1e4 ("mac80211: sync dtim_count to TSF")
Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Link: https://patch.msgid.link/20250621123209.511796-1-lachlan.hodges@morsemicro.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/util.c

index 27d414efa3fd4bda40d2a37b14da6a4aa6bf0a02..a125995ed2525e9964cc3c35007f6f40e792e581 100644 (file)
@@ -3884,7 +3884,7 @@ void ieee80211_recalc_dtim(struct ieee80211_local *local,
 {
        u64 tsf = drv_get_tsf(local, sdata);
        u64 dtim_count = 0;
-       u16 beacon_int = sdata->vif.bss_conf.beacon_int * 1024;
+       u32 beacon_int = sdata->vif.bss_conf.beacon_int * 1024;
        u8 dtim_period = sdata->vif.bss_conf.dtim_period;
        struct ps_data *ps;
        u8 bcns_from_dtim;