]> 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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2025 16:27:41 +0000 (18:27 +0200)
[ Upstream commit 7a3750ff0f2e8fee338a9c168f429f6c37f0e820 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/mac80211/util.c

index 0da845d9d486356c71d8d69480981e3a0fc6a88a..7cb32340108e3921308ff462db1e01ba4eb3da99 100644 (file)
@@ -4242,7 +4242,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;