Created attachment 165497 [details] The patch file Background: ----------- https://forums.freebsd.org/threads/minor-nuisance-issue-bwn0-unsupported-rate-0.41355/ Original code: -------------- https://svnweb.freebsd.org/base/release/10.2.0/sys/dev/bwn/if_bwn.c?view=markup#l9635 9635 else { 9636 rix = ieee80211_ratectl_rate(ni, NULL, 0); 9637 rate = ni->ni_txrate; 9638 9639 if (rix > 0) 9640 rate_fb = ni->ni_rates.rs_rates[rix - 1] & 9641 IEEE80211_RATE_VAL; 9642 else 9643 rate_fb = rate; 9644 } Explanation: ------------ The ni->ni_rates.rs_rates container is supposed to house the negotiated rates in increasing magnitude. The rix variable contains the size of this container. The original code is trying to get the last element in the container (supposed to be the highest rate). After a few tests though, it turned out that this container has some filler elements of value "0" at its end. So, the last element in the container is not necessarily the highest rate.
A cleaner solution would be review D5165.
Comment on attachment 165497 [details] The patch file ^Triage: correctly set flag.
^Triage: clear the now obsolete 'patch' keyword. To submitter: is this aging PR still relevant?