Date: Wed, 23 Apr 2014 05:19:45 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r264798 - head/sys/dev/ath Message-ID: <201404230519.s3N5Jj5E036503@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 &&
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404230519.s3N5Jj5E036503>