svn commit: r189981 - head/sys/net80211
Sam Leffler
sam at FreeBSD.org
Wed Mar 18 12:38:40 PDT 2009
Author: sam
Date: Wed Mar 18 19:38:39 2009
New Revision: 189981
URL: http://svn.freebsd.org/changeset/base/189981
Log:
rate limit printfs for invalid tdma ie contents; probably want this to
be less than 1/sec
Modified:
head/sys/net80211/ieee80211_tdma.c
head/sys/net80211/ieee80211_tdma.h
Modified: head/sys/net80211/ieee80211_tdma.c
==============================================================================
--- head/sys/net80211/ieee80211_tdma.c Wed Mar 18 19:28:17 2009 (r189980)
+++ head/sys/net80211/ieee80211_tdma.c Wed Mar 18 19:38:39 2009 (r189981)
@@ -387,8 +387,9 @@ tdma_update(struct ieee80211vap *vap, co
update = 0;
if (tdma->tdma_slotcnt != ts->tdma_slotcnt) {
if (!TDMA_SLOTCNT_VALID(tdma->tdma_slotcnt)) {
- printf("%s: bad slot cnt %u\n",
- __func__, tdma->tdma_slotcnt);
+ if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+ printf("%s: bad slot cnt %u\n",
+ __func__, tdma->tdma_slotcnt);
return 0;
}
update |= TDMA_UPDATE_SLOTCNT;
@@ -396,16 +397,18 @@ tdma_update(struct ieee80211vap *vap, co
slotlen = le16toh(tdma->tdma_slotlen) * 100;
if (slotlen != ts->tdma_slotlen) {
if (!TDMA_SLOTLEN_VALID(slotlen)) {
- printf("%s: bad slot len %u\n",
- __func__, slotlen);
+ if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+ printf("%s: bad slot len %u\n",
+ __func__, slotlen);
return 0;
}
update |= TDMA_UPDATE_SLOTLEN;
}
if (tdma->tdma_bintval != ts->tdma_bintval) {
if (!TDMA_BINTVAL_VALID(tdma->tdma_bintval)) {
- printf("%s: bad beacon interval %u\n",
- __func__, tdma->tdma_bintval);
+ if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+ printf("%s: bad beacon interval %u\n",
+ __func__, tdma->tdma_bintval);
return 0;
}
update |= TDMA_UPDATE_BINTVAL;
Modified: head/sys/net80211/ieee80211_tdma.h
==============================================================================
--- head/sys/net80211/ieee80211_tdma.h Wed Mar 18 19:28:17 2009 (r189980)
+++ head/sys/net80211/ieee80211_tdma.h Wed Mar 18 19:38:39 2009 (r189981)
@@ -38,9 +38,11 @@ struct ieee80211_tdma_state {
uint8_t tdma_bintval; /* beacon interval (slots) */
uint8_t tdma_slot; /* station slot # */
uint8_t tdma_inuse[1]; /* mask of slots in use */
- void *tdma_peer; /* peer station cookie */
uint8_t tdma_active[1]; /* mask of active slots */
int tdma_count; /* active/inuse countdown */
+ void *tdma_peer; /* peer station cookie */
+ struct timeval tdma_lastprint; /* time of last rate-limited printf */
+ int tdma_fails; /* fail count for rate-limiting */
/* parent method pointers */
int (*tdma_newstate)(struct ieee80211vap *, enum ieee80211_state,
More information about the svn-src-head
mailing list