aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-06-24 13:23:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-27 09:09:20 -0400
commit428da76523e4a9c08bdfadc25a05b520f19b9133 (patch)
tree4fcdffdd45b38e81f11631867aaf75db676e3b9c /include/net/mac80211.h
parentf37d08bddc5cb8de18e55f2b0a401b3eb6269af4 (diff)
mac80211: Add RTNL warning for workqueue
The workqueue provided by mac80211 should not be used for scheduled tasks that acquire the RTNL lock. This could be done when the driver uses the function ieee80211_iterate_active_interfaces() within the scheduled work. Such behavior will end in locking dependencies problems when an interface is being removed. This patch will add a notification about the RTNL locking and the mac80211 workqueue to prevent driver developers from blindly using it. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Acked-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 19f1e412a0f0..02c79e6b309e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -738,8 +738,11 @@ enum ieee80211_hw_flags {
738 * @conf: &struct ieee80211_conf, device configuration, don't use. 738 * @conf: &struct ieee80211_conf, device configuration, don't use.
739 * 739 *
740 * @workqueue: single threaded workqueue available for driver use, 740 * @workqueue: single threaded workqueue available for driver use,
741 * allocated by mac80211 on registration and flushed on 741 * allocated by mac80211 on registration and flushed when an
742 * unregistration. 742 * interface is removed.
743 * NOTICE: All work performed on this workqueue should NEVER
744 * acquire the RTNL lock (i.e. Don't use the function
745 * ieee80211_iterate_active_interfaces())
743 * 746 *
744 * @priv: pointer to private area that was allocated for driver use 747 * @priv: pointer to private area that was allocated for driver use
745 * along with this structure. 748 * along with this structure.