Page MenuHomeFreeBSD

[iwm] Use iwm_mvm_scan_stop_wait to properly abort scans.
ClosedPublic

Authored by ivadasz on Jul 27 2016, 10:32 PM.
Tags
None
Referenced Files
F136157436: D7342.diff
Sun, Nov 16, 6:55 AM
Unknown Object (File)
Mon, Nov 3, 2:37 AM
Unknown Object (File)
Wed, Oct 29, 11:53 PM
Unknown Object (File)
Wed, Oct 29, 11:53 PM
Unknown Object (File)
Wed, Oct 29, 4:17 PM
Unknown Object (File)
Wed, Oct 29, 4:29 AM
Unknown Object (File)
Oct 8 2025, 12:40 AM
Unknown Object (File)
Oct 8 2025, 12:00 AM
Subscribers

Details

Reviewers
cognet
adrian
Summary
  • Add IWM_FLAG_SCAN_RUNNING to sc->sc_flags to track whether the firmware is currently running a scan, in order to decide wheter iwm_scan_end needs to abort a running scan.
  • In iwm_scan_end, if the scan is still running, we now abort it, in order to keep the firmware scanning state in sync.
  • Try to make things a bit simpler, by reacting on the IWM_SCAN_OFFLOAD_COMPLETE and IWM_SCAN_COMPLETE_UMAC notifications, instead of IWM_SCAN_ITERATION_COMPLETE and IWM_SCAN_ITERATION_COMPLETE_UMAC. This should be fine since we always only tell the firmware to do a single scan iteration anyway.
  • With this change, I can start multiple scan request via "ifconfig wlan0 scan" in quick succession without triggering a firmware panic as before this change.
Test Plan

AC3165, STA mode

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 4639
Build 4693: arc lint + arc unit

Event Timeline

ivadasz retitled this revision from to [iwm] Use iwm_mvm_scan_stop_wait to properly abort scans..
ivadasz updated this object.
ivadasz edited the test plan for this revision. (Show Details)
ivadasz added reviewers: adrian, cognet.
adrian edited edge metadata.

looks good! thanks!

This revision is now accepted and ready to land.Jul 28 2016, 2:20 AM

Not autoclosed when committed because not marked. Very close to following commit:

commit 82ba706cba913a95e432793db7a02cfd93ed01fe
Author: Adrian Chadd <adrian@FreeBSD.org>
Date:   Wed Feb 8 06:50:59 2017 +0000

  [iwm] Use iwm_mvm_scan_stop_wait to properly abort scans.

  * Add IWM_FLAG_SCAN_RUNNING to sc->sc_flags to track whether the firmware
    is currently running a scan, in order to decide wheter iwm_scan_end
    needs to abort a running scan.

  * In iwm_scan_end, if the scan is still running, we now abort it, in order
    to keep the firmware scanning state in sync.

  * Try to make things a bit simpler, by reacting on the
    IWM_SCAN_OFFLOAD_COMPLETE and IWM_SCAN_COMPLETE_UMAC notifications,
    instead of IWM_SCAN_ITERATION_COMPLETE and
    IWM_SCAN_ITERATION_COMPLETE_UMAC. This should be fine since we always
    only tell the firmware to do a single scan iteration anyway.

  Obtained from:  DragonflyBSD commit 1f249c981c4e89e7cde1836a75b61cac36dc7ac5