diff options
author | adrian <adrian@FreeBSD.org> | 2012-12-09 01:08:44 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-12-09 01:08:44 +0000 |
commit | 2961cca7115ab05fda3222d813523d134ac42adc (patch) | |
tree | b7d46cb6f76cbd5d501674190a80825717b64e7e /sys/net80211/ieee80211_superg.h | |
parent | 02094caa2c2fce94821d84bde50b9373b47f97e7 (diff) | |
download | FreeBSD-src-2961cca7115ab05fda3222d813523d134ac42adc.zip FreeBSD-src-2961cca7115ab05fda3222d813523d134ac42adc.tar.gz |
Don't panic if the stageq here is empty; just fall through with NULL
pointers and leave the stage queue flush routine to just do nothing
(since both head and tail here will be NULL.)
This should quieten the "stageq empty" panic where the stageq itself
is empty, but it won't fix the second KASSERT() here "staging queue empty"
as that's likely a different underlying problem.
PR: kern/174283
Diffstat (limited to 'sys/net80211/ieee80211_superg.h')
-rw-r--r-- | sys/net80211/ieee80211_superg.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_superg.h b/sys/net80211/ieee80211_superg.h index 970a5fe..81d918e 100644 --- a/sys/net80211/ieee80211_superg.h +++ b/sys/net80211/ieee80211_superg.h @@ -87,6 +87,10 @@ struct mbuf *ieee80211_ff_check(struct ieee80211_node *, struct mbuf *); void ieee80211_ff_age(struct ieee80211com *, struct ieee80211_stageq *, int quanta); +/* + * See ieee80211_ff_age() for a description of the locking + * expectation here. + */ static __inline void ieee80211_ff_flush(struct ieee80211com *ic, int ac) { @@ -96,6 +100,10 @@ ieee80211_ff_flush(struct ieee80211com *ic, int ac) ieee80211_ff_age(ic, &sg->ff_stageq[ac], 0x7fffffff); } +/* + * See ieee80211_ff_age() for a description of the locking + * expectation here. + */ static __inline void ieee80211_ff_age_all(struct ieee80211com *ic, int quanta) { |