[Bug 249402] Locking issue when requesting an ieee80211 scan

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Sep 17 18:30:57 UTC 2020


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249402

            Bug ID: 249402
           Summary: Locking issue when requesting an ieee80211 scan
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: wireless
          Assignee: wireless at FreeBSD.org
          Reporter: martin at NetBSD.org

Created attachment 218029
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=218029&action=edit
Patch to unlock the wifi ic before calling ieee80211_check_scan()

While adapting the ieee80211 stack to NetBSD I ran into a locking issue
whenever scans are started.

I don't know if locking the wifi IC in FreeBSD allows for recursion - in NetBSD
it doesn't and all scan starts will result in a "locking against myself"
assertion with LOCKDEBUG kernels.

The call here comes in via the ic_newstate callback, which always is called
with IC locked (see also the assertion a few lines above), but the
ieee80211_check_scan() function (and indirectly ieee80211_check_scan_current()
which calls it) will lock the ic again.

Simple patch to work around attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-wireless mailing list