]> 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, 10 Jul 2025 13:57:38 +0000 (15:57 +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 cc78d3cba45e415be1f90e207b13d1c91ff92815..07512f0d5576ea968939826a422cf5c2160c1228 100644 (file)
@@ -4350,7 +4350,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;