ath9k: ratelimit missed beacons.
Rate limit missed beacon messages in the hope that reducing excessive
logging improves the MB issue.
See b/33254264
Change-Id: I553884e0f985fbe46754c020e54d07dde086aeac
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c
index 5cf0cd7..ef77f0e 100644
--- a/drivers/net/wireless/ath/ath9k/beacon.c
+++ b/drivers/net/wireless/ath/ath9k/beacon.c
@@ -355,14 +355,17 @@
return;
if (sc->beacon.bmisscnt < BSTUCK_THRESH * sc->nbcnvifs) {
- ath_dbg(common, BSTUCK,
- "missed %u consecutive beacons\n",
- sc->beacon.bmisscnt);
+ if (printk_ratelimit())
+ ath_dbg(common, BSTUCK,
+ "missed %u consecutive beacons.\n",
+ sc->beacon.bmisscnt);
ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
if (sc->beacon.bmisscnt > 3)
ath9k_hw_bstuck_nfcal(ah);
} else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
- ath_dbg(common, BSTUCK, "beacon is officially stuck\n");
+ if (printk_ratelimit())
+ ath_dbg(common, BSTUCK,
+ "beacon is officially stuck - reset\n");
sc->beacon.bmisscnt = 0;
ath9k_queue_reset(sc, RESET_TYPE_BEACON_STUCK);
}
@@ -394,8 +397,10 @@
bf = ath9k_beacon_generate(sc->hw, vif);
if (sc->beacon.bmisscnt != 0) {
- ath_dbg(common, BSTUCK, "resume beacon xmit after %u misses\n",
- sc->beacon.bmisscnt);
+ if (printk_ratelimit())
+ ath_dbg(common, BSTUCK,
+ "resume beacon xmit after %u misses\n",
+ sc->beacon.bmisscnt);
sc->beacon.bmisscnt = 0;
}