Skip to content
Snippets Groups Projects
  • Johannes Berg's avatar
    cfg80211: avoid holding the RTNL when calling the driver · a05829a7
    Johannes Berg authored
    Currently, _everything_ in cfg80211 holds the RTNL, and if you
    have a slow USB device (or a few) you can get some bad lock
    contention on that.
    
    Fix that by re-adding a mutex to each wiphy/rdev as we had at
    some point, so we have locking for the wireless_dev lists and
    all the other things in there, and also so that drivers still
    don't have to worry too much about it (they still won't get
    parallel calls for a single device).
    
    Then, we can restrict the RTNL to a few cases where we add or
    remove interfaces and really need the added protection. Some
    of the global list management still also uses the RTNL, since
    we need to have it anyway for netdev management, but we only
    hold the RTNL for very short periods of time here.
    
    Link: https://lore.kernel.org/r/20210122161942.81df9f5e047a.I4a8e1a60b18863ea8c5e6d3a0faeafb2d45b2f40@changeid
    
    
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com> [marvell driver issues]
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    a05829a7
Code owners
Assign users and groups as approvers for specific file changes. Learn more.