mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
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
This commit is contained in:
parent
c5f9511e91
commit
b69b7fe758
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=183246
@ -1080,22 +1080,21 @@ void
|
||||
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);
|
||||
|
||||
/* 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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user