git: 5c74aa3abd4e - main - rtwn: enable reception of BAR frames
Date: Wed, 23 Apr 2025 02:04:08 UTC
The branch main has been updated by adrian: URL: https://cgit.FreeBSD.org/src/commit/?id=5c74aa3abd4e353ed7f8cb446c0527c8ebe15d1c commit 5c74aa3abd4e353ed7f8cb446c0527c8ebe15d1c Author: Jessica Clarke <jrtc27@freebsd.org> AuthorDate: 2025-04-01 00:43:13 +0000 Commit: Adrian Chadd <adrian@FreeBSD.org> CommitDate: 2025-04-23 02:02:39 +0000 rtwn: enable reception of BAR frames The RX filter wasn't enabling BAR frames, so we weren't receiving them during normal operation. Jessica noticed we WERE getting BAR frames, but only when promisc mode is active. Which is a different set of bugs, but it did highlight the differences here. Differential Revision: https://reviews.freebsd.org/D49596 PR: kern/285822 --- sys/dev/rtwn/if_rtwn.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/dev/rtwn/if_rtwn.c b/sys/dev/rtwn/if_rtwn.c index 7df1b78db37b..7a547e13cafa 100644 --- a/sys/dev/rtwn/if_rtwn.c +++ b/sys/dev/rtwn/if_rtwn.c @@ -1203,6 +1203,9 @@ rtwn_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) /* Stop Rx of data frames. */ rtwn_write_2(sc, R92C_RXFLTMAP2, 0); + /* Stop Rx of control frames. */ + rtwn_write_2(sc, R92C_RXFLTMAP1, 0); + /* Reset EDCA parameters. */ rtwn_write_4(sc, R92C_EDCA_VO_PARAM, 0x002f3217); rtwn_write_4(sc, R92C_EDCA_VI_PARAM, 0x005e4317); @@ -1374,6 +1377,11 @@ rtwn_run(struct rtwn_softc *sc, struct ieee80211vap *vap) rtwn_write_2(sc, R92C_BCN_INTERVAL(uvp->id), ni->ni_intval); if (sc->vaps_running == sc->monvaps_running) { + /* Enable Rx of BAR control frames. */ + rtwn_write_2(sc, R92C_RXFLTMAP1, + 1 << (IEEE80211_FC0_SUBTYPE_BAR >> + IEEE80211_FC0_SUBTYPE_SHIFT)); + /* Enable Rx of data frames. */ rtwn_write_2(sc, R92C_RXFLTMAP2, 0xffff);