aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-20 15:59:28 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-10-25 14:43:14 -0400
commit0845735e2d1e4c177076d4bc2d841d9f77e95131 (patch)
treed45bf79b448f0eef91d1803f113df9343afef820 /drivers
parentath9k_hw: Fix divide by zero cases in paprd. (diff)
downloadlinux-dev-0845735e2d1e4c177076d4bc2d841d9f77e95131.tar.xz
linux-dev-0845735e2d1e4c177076d4bc2d841d9f77e95131.zip
ath9k: fix crash in ath_update_survey_stats
If ah->curchan is uninitialized, the channel index is bogus, which leads to invalid memory access when the cycle counters are updated. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 3ff0e476c2b3..9679b3191975 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -182,6 +182,9 @@ static void ath_update_survey_stats(struct ath_softc *sc)
struct ath_cycle_counters *cc = &common->cc_survey;
unsigned int div = common->clockrate * 1000;
+ if (!ah->curchan)
+ return;
+
if (ah->power_mode == ATH9K_PM_AWAKE)
ath_hw_cycle_counters_update(common);