PERFORCE change 149557 for review
Sam Leffler
sam at FreeBSD.org
Wed Sep 10 18:32:24 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=149557
Change 149557 by sam at 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
}
More information about the p4-projects
mailing list