diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2024-02-26 18:00:10 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2024-02-26 18:00:10 +0000 |
commit | 8bf682aadd0e9cfa34a57fcd3133cdfe97e03bff (patch) | |
tree | bb6d59aad0d35a917c5c20fab1ce6011eb3adadb /sys | |
parent | 2debda92f1ce88f13080ec7959739ecbd472c963 (diff) |
fix Tx rate selection for management frames in iwx(4)
The Tx rate index stored in ni->ni_txrate is not intended for use
with management frames, yet iwx_tx_fill_cmd() was using it anyway.
Use the minimum basic rate selected within iwx_tx_fill_cmd() instead.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/if_iwx.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/pci/if_iwx.c b/sys/dev/pci/if_iwx.c index 2166d47151a..a2ed6b9e626 100644 --- a/sys/dev/pci/if_iwx.c +++ b/sys/dev/pci/if_iwx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwx.c,v 1.181 2024/02/16 11:44:52 stsp Exp $ */ +/* $OpenBSD: if_iwx.c,v 1.182 2024/02/26 18:00:09 stsp Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh <info@genua.de> @@ -6085,13 +6085,12 @@ iwx_tx_fill_cmd(struct iwx_softc *sc, struct iwx_node *in, } else if (sc->sc_rate_n_flags_version >= 2) rate_flags |= IWX_RATE_MCS_LEGACY_OFDM_MSK; - rval = (rs->rs_rates[ni->ni_txrate] & IEEE80211_RATE_VAL); if (sc->sc_rate_n_flags_version >= 2) { if (rate_flags & IWX_RATE_MCS_LEGACY_OFDM_MSK) { - rate_flags |= (iwx_fw_rateidx_ofdm(rval) & + rate_flags |= (iwx_fw_rateidx_ofdm(rinfo->rate) & IWX_RATE_LEGACY_RATE_MSK); } else { - rate_flags |= (iwx_fw_rateidx_cck(rval) & + rate_flags |= (iwx_fw_rateidx_cck(rinfo->rate) & IWX_RATE_LEGACY_RATE_MSK); } } else |