mac80211: add interface list lock
Using only the RTNL has a number of problems, most notably that ieee80211_iterate_active_interfaces() and other interface list traversals cannot be done from the internal workqueue because it needs to be flushed under the RTNL. This patch introduces a new mutex that protects the interface list against modifications. A more detailed explanation is part of the code change. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
506d03f97d
commit
c771c9d8da
@ -928,9 +928,8 @@ enum ieee80211_hw_flags {
|
||||
* @workqueue: single threaded workqueue available for driver use,
|
||||
* allocated by mac80211 on registration and flushed when an
|
||||
* interface is removed.
|
||||
* NOTICE: All work performed on this workqueue should NEVER
|
||||
* acquire the RTNL lock (i.e. Don't use the function
|
||||
* ieee80211_iterate_active_interfaces())
|
||||
* NOTICE: All work performed on this workqueue must not
|
||||
* acquire the RTNL lock.
|
||||
*
|
||||
* @priv: pointer to private area that was allocated for driver use
|
||||
* along with this structure.
|
||||
|
Reference in New Issue
Block a user