diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-02-15 15:38:08 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-03-07 08:33:21 -0500 |
commit | e943789edbb1f9de71b129d9992489eb79ed341f (patch) | |
tree | 68fa313de6316ee270dc7fbc08b3596bf3483497 /net/mac80211/main.c | |
parent | 560d268220d3416a2d473bcc906ea2ccbf51e4ec (diff) |
mac80211: provide ieee80211_sta_eosp()
The irqsafe version ieee80211_sta_eosp_irqsafe() exists, but
drivers must not mix calls to any irqsafe/non-irqsafe function.
Both ath9k and iwlwifi, the likely first users of this interface,
use non-irqsafe RX/TX/TX status so must also use a non-irqsafe
version of this function. Since no driver uses the _irqsafe()
version, remove that.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 5a53aa5ede80..5531c89909d8 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -226,8 +226,6 @@ u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata) | |||
226 | static void ieee80211_tasklet_handler(unsigned long data) | 226 | static void ieee80211_tasklet_handler(unsigned long data) |
227 | { | 227 | { |
228 | struct ieee80211_local *local = (struct ieee80211_local *) data; | 228 | struct ieee80211_local *local = (struct ieee80211_local *) data; |
229 | struct sta_info *sta, *tmp; | ||
230 | struct skb_eosp_msg_data *eosp_data; | ||
231 | struct sk_buff *skb; | 229 | struct sk_buff *skb; |
232 | 230 | ||
233 | while ((skb = skb_dequeue(&local->skb_queue)) || | 231 | while ((skb = skb_dequeue(&local->skb_queue)) || |
@@ -243,18 +241,6 @@ static void ieee80211_tasklet_handler(unsigned long data) | |||
243 | skb->pkt_type = 0; | 241 | skb->pkt_type = 0; |
244 | ieee80211_tx_status(&local->hw, skb); | 242 | ieee80211_tx_status(&local->hw, skb); |
245 | break; | 243 | break; |
246 | case IEEE80211_EOSP_MSG: | ||
247 | eosp_data = (void *)skb->cb; | ||
248 | for_each_sta_info(local, eosp_data->sta, sta, tmp) { | ||
249 | /* skip wrong virtual interface */ | ||
250 | if (memcmp(eosp_data->iface, | ||
251 | sta->sdata->vif.addr, ETH_ALEN)) | ||
252 | continue; | ||
253 | clear_sta_flag(sta, WLAN_STA_SP); | ||
254 | break; | ||
255 | } | ||
256 | dev_kfree_skb(skb); | ||
257 | break; | ||
258 | default: | 244 | default: |
259 | WARN(1, "mac80211: Packet is of unknown type %d\n", | 245 | WARN(1, "mac80211: Packet is of unknown type %d\n", |
260 | skb->pkt_type); | 246 | skb->pkt_type); |