aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-01-23 16:54:03 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 16:01:45 -0500
commitc771c9d8da1e8292ef8bf7fd4ce135dacc650130 (patch)
tree79b259a6b0396cbecf9e775c7ba5a80e2c4d94c9 /include
parent506d03f97d10e54fd27c58c872a98242326d6419 (diff)
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>
Diffstat (limited to 'include')
-rw-r--r--include/net/mac80211.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index c1e8261e899e..8e65adf0a64c 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -928,9 +928,8 @@ enum ieee80211_hw_flags {
928 * @workqueue: single threaded workqueue available for driver use, 928 * @workqueue: single threaded workqueue available for driver use,
929 * allocated by mac80211 on registration and flushed when an 929 * allocated by mac80211 on registration and flushed when an
930 * interface is removed. 930 * interface is removed.
931 * NOTICE: All work performed on this workqueue should NEVER 931 * NOTICE: All work performed on this workqueue must not
932 * acquire the RTNL lock (i.e. Don't use the function 932 * acquire the RTNL lock.
933 * ieee80211_iterate_active_interfaces())
934 * 933 *
935 * @priv: pointer to private area that was allocated for driver use 934 * @priv: pointer to private area that was allocated for driver use
936 * along with this structure. 935 * along with this structure.