Page MenuHomeFreeBSD

net80211: fix ieee80211_htrateset setup, return EINVAL for an unsupported ucast/mcast/mgmt HT rate
ClosedPublic

Authored by avos on Mar 3 2017, 12:22 AM.

Details

Summary
  • Init global ieee80211_htrateset only once; neither ic_htcaps nor ic_txstream is changed when device is attached.
  • Move global ieee80211_htrateset structure to ieee80211com; there was a possible data race when more than 1 wireless device is used simultaneously;
  • Discard unsupported rates in ieee80211_ioctl_settxparams(); otherwise, an unsupported value may break connectivity (actually, 'ifconfig wlan0 ucastrate 8' for RTL8188EU results in immediate disconnect + infinite 'device timeout's' after it)
Test Plan

Tested with

  • Intel 6205, STA mode.
  • RTL8821AU, STA mode.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

avos retitled this revision from to net80211: fix ieee80211_rateset setup, return EINVAL for an unsupported ucast/mcast/mgmt HT rate.
avos updated this object.
avos edited the test plan for this revision. (Show Details)
avos added a reviewer: adrian.
avos set the repository for this revision to rS FreeBSD src repository - subversion.
avos retitled this revision from net80211: fix ieee80211_rateset setup, return EINVAL for an unsupported ucast/mcast/mgmt HT rate to net80211: fix ieee80211_htrateset setup, return EINVAL for an unsupported ucast/mcast/mgmt HT rate.Mar 3 2017, 12:23 AM
adrian edited edge metadata.
This revision is now accepted and ready to land.Mar 3 2017, 12:24 AM
avos edited edge metadata.

Init htrateset a bit later

This revision now requires review to proceed.Mar 3 2017, 12:25 AM
adrian edited edge metadata.

I like this. Good catch!

This revision is now accepted and ready to land.Mar 3 2017, 12:55 AM
This revision was automatically updated to reflect the committed changes.