diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-05-17 10:34:12 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-19 13:54:05 -0400 |
commit | ac56703e0e790509963ee42cddebe706fbd3b74c (patch) | |
tree | 83adac6e8a05fab9c9d7a6e62beb6d7104639231 /drivers/net/wireless/ath/ath9k | |
parent | 5b68138e5659cbfd5df2879d17f9ba0b66477fec (diff) | |
download | op-kernel-dev-ac56703e0e790509963ee42cddebe706fbd3b74c.zip op-kernel-dev-ac56703e0e790509963ee42cddebe706fbd3b74c.tar.gz |
ath9k: fix ad-hoc nexttbtt calculation
rounding up the delta between last-beacon-tsf and tsf to intval is wrong
and can lead to misconfigured timers which breaks beacon transmission.
Fix this by adding intval and subtracting the offset of the tsf within the
current slot.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/beacon.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c index 2f65994..61b501a 100644 --- a/drivers/net/wireless/ath/ath9k/beacon.c +++ b/drivers/net/wireless/ath/ath9k/beacon.c @@ -654,7 +654,7 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc, delta = (tsf - sc->beacon.bc_tstamp); else delta = (tsf + 1 + (~0U - sc->beacon.bc_tstamp)); - nexttbtt = tsf + roundup(delta, intval); + nexttbtt = tsf + intval - (delta % intval); } ath_dbg(common, ATH_DBG_BEACON, |