svn commit: r264798 - head/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Wed Apr 23 05:19:45 UTC 2014
Author: adrian
Date: Wed Apr 23 05:19:45 2014
New Revision: 264798
URL: http://svnweb.freebsd.org/changeset/base/264798
Log:
Wrap the rate control re-init code in a lock, to serialise it with
concurrent updates from any completing transmits in other threads.
This was exposed when doing power save work - net80211 is constantly
doing reassociations and it's causing the rate control state to get
blanked out. This could cause the rate control code to assert.
This should be MFCed to stable/10 as it's a stability fix.
Tested:
* AR5416, STA
MFC after: 7 days
Modified:
head/sys/dev/ath/if_ath.c
Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c Wed Apr 23 03:30:00 2014 (r264797)
+++ head/sys/dev/ath/if_ath.c Wed Apr 23 05:19:45 2014 (r264798)
@@ -5567,7 +5567,9 @@ ath_newassoc(struct ieee80211_node *ni,
an->an_mcastrix = ath_tx_findrix(sc, tp->mcastrate);
an->an_mgmtrix = ath_tx_findrix(sc, tp->mgmtrate);
+ ATH_NODE_LOCK(an);
ath_rate_newassoc(sc, an, isnew);
+ ATH_NODE_UNLOCK(an);
if (isnew &&
(vap->iv_flags & IEEE80211_F_PRIVACY) == 0 && sc->sc_hasclrkey &&
More information about the svn-src-all
mailing list