Date: Mon, 21 Jan 2019 01:03:04 +0000 (UTC) From: Andriy Voskoboinyk <avos@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r343239 - in stable/12/sys/dev/rtwn: rtl8192c rtl8812a Message-ID: <201901210103.x0L1344k063113@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: avos Date: Mon Jan 21 01:03:03 2019 New Revision: 343239 URL: https://svnweb.freebsd.org/changeset/base/343239 Log: MFC r343092: rtwn(4): clear 'basic' rate bit before calculating RTS/CTS rate. Rate tables have this bit set to indicate minimal set of basic rates; however, it overlappes with MCS bit, so rate2ridx() will treat them as an 11n rate. Due to the current rates setup the issue can be reproduced only in 5GHz band with 11n / protection enabled. Modified: stable/12/sys/dev/rtwn/rtl8192c/r92c_tx.c stable/12/sys/dev/rtwn/rtl8812a/r12a_tx.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/rtwn/rtl8192c/r92c_tx.c ============================================================================== --- stable/12/sys/dev/rtwn/rtl8192c/r92c_tx.c Mon Jan 21 00:53:38 2019 (r343238) +++ stable/12/sys/dev/rtwn/rtl8192c/r92c_tx.c Mon Jan 21 01:03:03 2019 (r343239) @@ -103,7 +103,7 @@ r92c_tx_protection(struct rtwn_softc *sc, struct r92c_ rate = rtwn_ctl_mcsrate(ic->ic_rt, ridx); else rate = ieee80211_ctl_rate(ic->ic_rt, ridx2rate[ridx]); - ridx = rate2ridx(rate); + ridx = rate2ridx(IEEE80211_RV(rate)); txd->txdw4 |= htole32(SM(R92C_TXDW4_RTSRATE, ridx)); /* RTS rate fallback limit (max). */ Modified: stable/12/sys/dev/rtwn/rtl8812a/r12a_tx.c ============================================================================== --- stable/12/sys/dev/rtwn/rtl8812a/r12a_tx.c Mon Jan 21 00:53:38 2019 (r343238) +++ stable/12/sys/dev/rtwn/rtl8812a/r12a_tx.c Mon Jan 21 01:03:03 2019 (r343239) @@ -111,7 +111,7 @@ r12a_tx_protection(struct rtwn_softc *sc, struct r12a_ rate = rtwn_ctl_mcsrate(ic->ic_rt, ridx); else rate = ieee80211_ctl_rate(ic->ic_rt, ridx2rate[ridx]); - ridx = rate2ridx(rate); + ridx = rate2ridx(IEEE80211_RV(rate)); txd->txdw4 |= htole32(SM(R12A_TXDW4_RTSRATE, ridx)); /* RTS rate fallback limit (max). */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901210103.x0L1344k063113>