Skip to content
  • Johannes Berg's avatar
    mac80211: fix possible sta-debugfs work lockup · 49ec6fa2
    Johannes Berg authored
    
    
    Because we queue the sta-debugfs-adding work on our mac80211
    workqueue (which needs to be flushed under RTNL) and that work
    needs the RTNL, it can currently deadlock, thanks to Reinette
    Chatre for pointing out the lockdep warning about this.
    
    This patch fixes it by moving this work to the common kernel
    workqueue (using schedule_work) and canceling it as appropriate.
    
    It also fixes a related problem: When a STA is pinned by the
    debugfs adding work and sta_info_flush() runs concurrently
    it is not guaranteed that all STAs are removed from the driver
    before the corresponding interface is removed which may lead
    to bugs.
    
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Cc: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    49ec6fa2