diff options
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index dc128b412eab..2a1a7d457136 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -306,7 +306,7 @@ static void purge_old_ps_buffers(struct ieee80211_local *local) | |||
306 | } | 306 | } |
307 | read_unlock(&local->sub_if_lock); | 307 | read_unlock(&local->sub_if_lock); |
308 | 308 | ||
309 | spin_lock_bh(&local->sta_lock); | 309 | read_lock_bh(&local->sta_lock); |
310 | list_for_each_entry(sta, &local->sta_list, list) { | 310 | list_for_each_entry(sta, &local->sta_list, list) { |
311 | skb = skb_dequeue(&sta->ps_tx_buf); | 311 | skb = skb_dequeue(&sta->ps_tx_buf); |
312 | if (skb) { | 312 | if (skb) { |
@@ -315,7 +315,7 @@ static void purge_old_ps_buffers(struct ieee80211_local *local) | |||
315 | } | 315 | } |
316 | total += skb_queue_len(&sta->ps_tx_buf); | 316 | total += skb_queue_len(&sta->ps_tx_buf); |
317 | } | 317 | } |
318 | spin_unlock_bh(&local->sta_lock); | 318 | read_unlock_bh(&local->sta_lock); |
319 | 319 | ||
320 | local->total_ps_buffered = total; | 320 | local->total_ps_buffered = total; |
321 | printk(KERN_DEBUG "%s: PS buffers full - purged %d frames\n", | 321 | printk(KERN_DEBUG "%s: PS buffers full - purged %d frames\n", |
@@ -1629,7 +1629,7 @@ static void ieee80211_beacon_add_tim(struct ieee80211_local *local, | |||
1629 | 1629 | ||
1630 | /* Generate bitmap for TIM only if there are any STAs in power save | 1630 | /* Generate bitmap for TIM only if there are any STAs in power save |
1631 | * mode. */ | 1631 | * mode. */ |
1632 | spin_lock_bh(&local->sta_lock); | 1632 | read_lock_bh(&local->sta_lock); |
1633 | if (atomic_read(&bss->num_sta_ps) > 0) | 1633 | if (atomic_read(&bss->num_sta_ps) > 0) |
1634 | /* in the hope that this is faster than | 1634 | /* in the hope that this is faster than |
1635 | * checking byte-for-byte */ | 1635 | * checking byte-for-byte */ |
@@ -1680,7 +1680,7 @@ static void ieee80211_beacon_add_tim(struct ieee80211_local *local, | |||
1680 | *pos++ = aid0; /* Bitmap control */ | 1680 | *pos++ = aid0; /* Bitmap control */ |
1681 | *pos++ = 0; /* Part Virt Bitmap */ | 1681 | *pos++ = 0; /* Part Virt Bitmap */ |
1682 | } | 1682 | } |
1683 | spin_unlock_bh(&local->sta_lock); | 1683 | read_unlock_bh(&local->sta_lock); |
1684 | } | 1684 | } |
1685 | 1685 | ||
1686 | struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw, int if_id, | 1686 | struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw, int if_id, |