]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
[iwn] Flip over to use VAP flags rather than ic flags for things
authorAdrian Chadd <adrian@FreeBSD.org>
Mon, 22 Mar 2021 16:47:43 +0000 (09:47 -0700)
committerAdrian Chadd <adrian@FreeBSD.org>
Fri, 26 Mar 2021 01:26:09 +0000 (18:26 -0700)
commitb6fd00791f2b9690b0a5d8670fc03f74eda96da2
tree0a446b6d160245a09fb0126508a9fc4499cd24fe
parentb9f803b7d4b7ee3799ab94f66c02c3b6e58c153a
[iwn] Flip over to use VAP flags rather than ic flags for things

net80211 changed a while back to support per-VAP config for things
rather than it being global.  This is to support firmware NICs that
support per-VAP flags and configuration where the firmware will figure
out how to combine them.

However, it introduced a fun timing issue - those changes used to happen
to the shared ic state before newstate() was called, but now they're
also tasks and they can happen /after/.

This isn't a problem for ath(4), but it exposed some interesting
timing and config bugs here.  Notably, I saw short slot NOT being
configured in 5GHz mode during some associations, so 5GHz stuff
would hang or behave poorly.  Other times the follow-up auth has
the right config, so it didn't hang.

So for now, just flip this over to using the per-VAP flags which
are correct when newstate() is called.  net80211 should also have
those flags synch'ed to the global ic state before newstate() runs
and that can come in a subsequent commit.

Whilst here also fix plcp to be consistently logged as a hex value.

Tested:

* iwn(4) Intel 6205, STA mode, both 2GHz and 5GHz

Differential Revision: https://reviews.freebsd.org/D29379
Reviewed by: bz
sys/dev/iwn/if_iwn.c