• Johannes Berg's avatar
    cfg80211: pmsr: fix abort locking · 73350424
    Johannes Berg authored
    When we destroy the interface we already hold the wdev->mtx
    while calling cfg80211_pmsr_wdev_down(), which assumes this
    isn't true and flushes the worker that takes the lock, thus
    leading to a deadlock.
    
    Fix this by refactoring the worker and calling its code in
    cfg80211_pmsr_wdev_down() directly.
    
    We still need to flush the work later to make sure it's not
    still running and will crash, but it will not do anything.
    
    Fixes: 9bb7e0f2 ("cfg80211: add peer measurement with FTM initiator API")
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    73350424
core.c 37.8 KB