1: c66f004516e6 ! 1: a9bad11cf90a wifi: ath9k: fix beacon slot selection once TSF exceeds 2^39 us @@ Commit message  Compute the offset within the beacon interval from the 64-bit TSF instead. For TSF values below 2^39 us the result is identical to the - old calculation. TSF_TO_TU() in ath9k.h has no other user and is - removed. + old calculation.  Observed on a TP-Link Archer C7 v2 (QCA9558, AHB) running OpenWrt 25.12.5 (backports 6.18.26) with three AP interfaces on 2.4 GHz. The @@ Commit message 40 ms average ping RTT (max 117 ms, no loss) over 5 minutes.  ath9k_htc_choose_bslot() in htc_drv_beacon.c uses a similar 32-bit - TU conversion (wrapping every 2^42 us, ~50.9 days); it is addressed - in a separate patch. + TU conversion (wrapping every 2^42 us, ~50.9 days); it is not changed + here as I cannot test it.  Fixes: dd347f2fb2dd ("ath9k: fix beacon timer handling issues") Cc: stable@vger.kernel.org Signed-off-by: Felix K.   - ## drivers/net/wireless/ath/ath9k/ath9k.h ## -@@ drivers/net/wireless/ath/ath9k/ath9k.h: void ath9k_set_txpower(struct ath_softc *sc, struct ieee80211_vif *vif); - #define ATH_DEFAULT_BINTVAL 100 /* TU */ - #define ATH_DEFAULT_BMISS_LIMIT 10 -  --#define TSF_TO_TU(_h,_l) \ -- ((((u32)(_h)) << 22) | (((u32)(_l)) >> 10)) -- - struct ath_beacon { - enum { - OK, /* no change needed */ - ## drivers/net/wireless/ath/ath9k/beacon.c ##  @@ drivers/net/wireless/ath/ath9k/beacon.c: static int ath9k_beacon_choose_slot(struct ath_softc *sc) struct ath_common *common = ath9k_hw_common(sc->sc_ah);