Date: Wed, 10 Sep 2008 18:32:23 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 149557 for review Message-ID: <200809101832.m8AIWNeu056324@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=149557 Change 149557 by sam@sam_ebb on 2008/09/10 18:31:45 Always update ic_lastnonht so we track overlapping legacy bss properly; was doing this only on a change in the protection mode so the advertised protection mode in the beacon would oscillate. Submitted by: Chris Zimmermann Affected files ... .. //depot/projects/vap/sys/net80211/ieee80211_ht.c#50 edit Differences ... ==== //depot/projects/vap/sys/net80211/ieee80211_ht.c#50 (text+ko) ==== @@ -1103,22 +1103,21 @@ ieee80211_htprot_update(struct ieee80211com *ic, int protmode) { #define OPMODE(x) SM(x, IEEE80211_HTINFO_OPMODE) - if (protmode == ic->ic_curhtprotmode) - return; - if (OPMODE(ic->ic_curhtprotmode) == IEEE80211_HTINFO_OPMODE_MIXED && - OPMODE(protmode) == IEEE80211_HTINFO_OPMODE_PROTOPT) - return; + IEEE80211_LOCK(ic); - IEEE80211_LOCK(ic); /* track non-HT station presence */ KASSERT(protmode & IEEE80211_HTINFO_NONHT_PRESENT, - ("missing NONHT_PRESENT")); + ("protmode 0x%x", protmode)); ic->ic_flags_ext |= IEEE80211_FEXT_NONHT_PR; ic->ic_lastnonht = ticks; - /* push beacon update */ - ic->ic_curhtprotmode = protmode; - htinfo_notify(ic); + if (protmode != ic->ic_curhtprotmode && + (OPMODE(ic->ic_curhtprotmode) != IEEE80211_HTINFO_OPMODE_MIXED || + OPMODE(protmode) == IEEE80211_HTINFO_OPMODE_PROTOPT)) { + /* push beacon update */ + ic->ic_curhtprotmode = protmode; + htinfo_notify(ic); + } IEEE80211_UNLOCK(ic); #undef OPMODE }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809101832.m8AIWNeu056324>