diff options
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index ed00552b3418..e76a58678959 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -417,10 +417,9 @@ struct ieee80211_local { | |||
417 | struct sk_buff_head skb_queue_unreliable; | 417 | struct sk_buff_head skb_queue_unreliable; |
418 | 418 | ||
419 | /* Station data structures */ | 419 | /* Station data structures */ |
420 | spinlock_t sta_lock; /* mutex for STA data structures */ | 420 | rwlock_t sta_lock; /* protects STA data structures */ |
421 | int num_sta; /* number of stations in sta_list */ | 421 | int num_sta; /* number of stations in sta_list */ |
422 | struct list_head sta_list; | 422 | struct list_head sta_list; |
423 | struct list_head deleted_sta_list; | ||
424 | struct sta_info *sta_hash[STA_HASH_SIZE]; | 423 | struct sta_info *sta_hash[STA_HASH_SIZE]; |
425 | struct timer_list sta_cleanup; | 424 | struct timer_list sta_cleanup; |
426 | 425 | ||
@@ -669,9 +668,9 @@ static inline void __bss_tim_set(struct ieee80211_if_ap *bss, int aid) | |||
669 | static inline void bss_tim_set(struct ieee80211_local *local, | 668 | static inline void bss_tim_set(struct ieee80211_local *local, |
670 | struct ieee80211_if_ap *bss, int aid) | 669 | struct ieee80211_if_ap *bss, int aid) |
671 | { | 670 | { |
672 | spin_lock_bh(&local->sta_lock); | 671 | read_lock_bh(&local->sta_lock); |
673 | __bss_tim_set(bss, aid); | 672 | __bss_tim_set(bss, aid); |
674 | spin_unlock_bh(&local->sta_lock); | 673 | read_unlock_bh(&local->sta_lock); |
675 | } | 674 | } |
676 | 675 | ||
677 | static inline void __bss_tim_clear(struct ieee80211_if_ap *bss, int aid) | 676 | static inline void __bss_tim_clear(struct ieee80211_if_ap *bss, int aid) |
@@ -686,9 +685,9 @@ static inline void __bss_tim_clear(struct ieee80211_if_ap *bss, int aid) | |||
686 | static inline void bss_tim_clear(struct ieee80211_local *local, | 685 | static inline void bss_tim_clear(struct ieee80211_local *local, |
687 | struct ieee80211_if_ap *bss, int aid) | 686 | struct ieee80211_if_ap *bss, int aid) |
688 | { | 687 | { |
689 | spin_lock_bh(&local->sta_lock); | 688 | read_lock_bh(&local->sta_lock); |
690 | __bss_tim_clear(bss, aid); | 689 | __bss_tim_clear(bss, aid); |
691 | spin_unlock_bh(&local->sta_lock); | 690 | read_unlock_bh(&local->sta_lock); |
692 | } | 691 | } |
693 | 692 | ||
694 | /** | 693 | /** |