Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Oct 2025 03:02:30 GMT
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 88f467bd1a11 - main - iwx: don't log VHT rate lookups in iwx_tx_fill_cmd() for data frames
Message-ID:  <202510040302.59432UNG014913@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by adrian:

URL: https://cgit.FreeBSD.org/src/commit/?id=88f467bd1a113b65cebcb6eca145dbd3bea72adc

commit 88f467bd1a113b65cebcb6eca145dbd3bea72adc
Author:     Adrian Chadd <adrian@FreeBSD.org>
AuthorDate: 2025-09-28 03:13:06 +0000
Commit:     Adrian Chadd <adrian@FreeBSD.org>
CommitDate: 2025-10-04 02:55:40 +0000

    iwx: don't log VHT rate lookups in iwx_tx_fill_cmd() for data frames
    
    iwx is now logging a lot of stuff to the kernel when associated at VHT
    rates.  It's my fault; the replacement tx rate APIs print out a warning
    when you're handing the legacy rate /HT rate APIs a VHT rate.
    
    However all of the supported chipsets in iwx will be pushing the
    rate control entirely into firmware.  We don't need to do per-frame
    TX rate control like in previous chips.
    
    So for now, just put in an if (rate == VHT) into the path and
    a TODO comment.  A few lines later the function will just skip the
    rate assignment stuff for data frames, thus saving us the logging.
    The other paths (control traffic, multicast traffic) uses legacy
    rates / HT rates by default and won't trigger a warning log.
    
    Yes, iwx_tx_fill_cmd() really does deserve a rate control logic
    rewrite, but I want to fix this particular issue first.
    
    Locally tested:
    
    * AX210, STA mode, HT and VHT associations
    
    Differential Revision:  https://reviews.freebsd.org/D52766
    Reviewed by:    thj
---
 sys/dev/iwx/if_iwx.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/dev/iwx/if_iwx.c b/sys/dev/iwx/if_iwx.c
index 557b5a7a1ca2..d2d435545e27 100644
--- a/sys/dev/iwx/if_iwx.c
+++ b/sys/dev/iwx/if_iwx.c
@@ -5501,6 +5501,9 @@ iwx_tx_fill_cmd(struct iwx_softc *sc, struct iwx_node *in,
 		/* for non-data, use the lowest supported rate */
 		ridx = min_ridx;
 		*flags |= IWX_TX_FLAGS_CMD_RATE;
+	} else if (ni->ni_flags & IEEE80211_NODE_VHT) {
+		/* TODO: VHT - the ridx / rate array doesn't have VHT rates yet */
+		ridx = iwx_min_basic_rate(ic);
 	} else if (ni->ni_flags & IEEE80211_NODE_HT) {
 		ridx = iwx_mcs2ridx[ieee80211_node_get_txrate_dot11rate(ni)
 		    & ~IEEE80211_RATE_MCS];



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510040302.59432UNG014913>