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-head mailing list