diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-01-23 16:54:03 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 16:01:45 -0500 |
commit | c771c9d8da1e8292ef8bf7fd4ce135dacc650130 (patch) | |
tree | 79b259a6b0396cbecf9e775c7ba5a80e2c4d94c9 /net/mac80211/ieee80211_i.h | |
parent | 506d03f97d10e54fd27c58c872a98242326d6419 (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 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 927cbde8c19c..eaf3603862b7 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -643,7 +643,9 @@ struct ieee80211_local { | |||
643 | struct crypto_blkcipher *wep_rx_tfm; | 643 | struct crypto_blkcipher *wep_rx_tfm; |
644 | u32 wep_iv; | 644 | u32 wep_iv; |
645 | 645 | ||
646 | /* see iface.c */ | ||
646 | struct list_head interfaces; | 647 | struct list_head interfaces; |
648 | struct mutex iflist_mtx; | ||
647 | 649 | ||
648 | /* | 650 | /* |
649 | * Key lock, protects sdata's key_list and sta_info's | 651 | * Key lock, protects sdata's key_list and sta_info's |