1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-07 22:49:42 +00:00

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
This commit is contained in:
Adrian Chadd 2014-04-23 05:19:45 +00:00
parent 2809a6dfa4
commit 656380e725
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=264798

View File

@ -5567,7 +5567,9 @@ ath_newassoc(struct ieee80211_node *ni, int isnew)
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 &&