Page MenuHomeFreeBSD

net80211: fix scanning after D5145 + fix PR 197498
ClosedPublic

Authored by avos on Feb 28 2016, 9:31 AM.

Details

Summary
  • In case, when we are doing <smth> -> INIT (FEXT_REINIT) -> <smth2> state transition, cancel_scan() may be called in the first transition. Reenqueue second state transition, so things will be executed in order.
  • Discard any AUTH+ state transition request when INIT -> SCAN transition is not done.
  • Allow to track discarded state transitions via 'state' debugging category.
Test Plan

Tested with:

  • RTL8188EU, HOSTAP mode.
  • RTL8188CUS, STA mode.
  • Intel 3945BG, IBSS and STA modes.

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 scanning after D5145 + fix PR 197498.
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.
adrian edited edge metadata.

good catch!

This revision is now accepted and ready to land.Feb 28 2016, 6:51 PM

This is not really reliable solution (i.e., scenario, described in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197498#c6 is still possible - however, now it will require specially crafted delays to reproduce).

we can do it later with wtap and extending it to support controllable sleep/wake points. :)

avos updated this object.
avos edited the test plan for this revision. (Show Details)
avos edited edge metadata.
  • Fix an added comment in ieee80211_newstate_cb() (IEEE80211_FEXT_STATEWAIT flag will be dropped before ieee80211_new_state_locked(), so this warning is not possible here).
  • Discard any AUTH+ state transition request when INIT -> SCAN transition is not done.

(now it will work without D5145)

This revision now requires review to proceed.Feb 28 2016, 10:56 PM
This revision is now accepted and ready to land.Feb 29 2016, 7:25 AM
This revision was automatically updated to reflect the committed changes.