aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2021-06-21 08:05:04 +0000
committerAndriy Gapon <avg@FreeBSD.org>2021-06-21 08:05:04 +0000
commit7544c1d20d8b7127ed3511edeb94e01d328daebb (patch)
tree536ed3e0d6af2b067bbad61361456d27f5d61227
parent313724bab940c1844fda3d797cf88cd46780e62a (diff)
downloadsrc-7544c1d20d8b7127ed3511edeb94e01d328daebb.tar.gz
src-7544c1d20d8b7127ed3511edeb94e01d328daebb.zip
rtwn: make sure to not write in upper bits of txdseq
ni_txseqs is kept as 16-bit counter, but we need to trim the upper four bits as they may have special meanings for the firmware / hardware. For instance, bit 15 enables hardware / firmware generation of sequence numbers that overrides sequence numbers programmed by the driver. Reviewed by: adrian MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D30814
-rw-r--r--sys/dev/rtwn/rtl8192c/r92c_tx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/rtwn/rtl8192c/r92c_tx.c b/sys/dev/rtwn/rtl8192c/r92c_tx.c
index ab2d05635358..b01731ba29ed 100644
--- a/sys/dev/rtwn/rtl8192c/r92c_tx.c
+++ b/sys/dev/rtwn/rtl8192c/r92c_tx.c
@@ -335,7 +335,7 @@ r92c_fill_tx_desc(struct rtwn_softc *sc, struct ieee80211_node *ni,
uint16_t seqno;
if (m->m_flags & M_AMPDU_MPDU) {
- seqno = ni->ni_txseqs[tid];
+ seqno = ni->ni_txseqs[tid] % IEEE80211_SEQ_RANGE;
ni->ni_txseqs[tid]++;
} else
seqno = M_SEQNO_GET(m) % IEEE80211_SEQ_RANGE;