summaryrefslogtreecommitdiffstats
path: root/net/mac80211/sta_info.c
diff options
context:
space:
mode:
authorJohannes Berg2013-02-13 17:39:53 +0100
committerJohannes Berg2013-02-15 09:41:12 +0100
commit65f704a52ec5db356c58f8ba53a31d3aef02737f (patch)
treebc5e0d6388005a74f4becc5ecf83713c8ea744c9 /net/mac80211/sta_info.c
parentmac80211: don't pick up WPA vendor IE (diff)
downloadkernel-qcow2-linux-65f704a52ec5db356c58f8ba53a31d3aef02737f.tar.gz
kernel-qcow2-linux-65f704a52ec5db356c58f8ba53a31d3aef02737f.tar.xz
kernel-qcow2-linux-65f704a52ec5db356c58f8ba53a31d3aef02737f.zip
mac80211: use spin_lock_bh() for tim_lock
There's no need to use _irqsave() as the lock is never used in interrupt context. This also fixes a problem in the iwlwifi MVM driver that calls spin_unlock_bh() within its set_tim() callback. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/sta_info.c')
-rw-r--r--net/mac80211/sta_info.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index fb3b5865fc39..0794b9018ed4 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -571,7 +571,6 @@ void sta_info_recalc_tim(struct sta_info *sta)
{
struct ieee80211_local *local = sta->local;
struct ps_data *ps;
- unsigned long flags;
bool indicate_tim = false;
u8 ignore_for_tim = sta->sta.uapsd_queues;
int ac;
@@ -628,7 +627,7 @@ void sta_info_recalc_tim(struct sta_info *sta)
}
done:
- spin_lock_irqsave(&local->tim_lock, flags);
+ spin_lock_bh(&local->tim_lock);
if (indicate_tim)
__bss_tim_set(ps->tim, id);
@@ -641,7 +640,7 @@ void sta_info_recalc_tim(struct sta_info *sta)
local->tim_in_locked_section = false;
}
- spin_unlock_irqrestore(&local->tim_lock, flags);
+ spin_unlock_bh(&local->tim_lock);
}
static bool sta_info_buffer_expired(struct sta_info *sta, struct sk_buff *skb)