diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-06-10 04:21:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-14 15:39:26 -0400 |
commit | bed7ee6e44cb7633a4f9821688a6c7ae977615ed (patch) | |
tree | 0c4997408d74abbde021b11b6b1046d815524e15 /net/mac80211/mlme.c | |
parent | 77a121c3a88eb00a4b5e753d083dbb7d49fefb0a (diff) |
mac80211: always process blockack action from workqueue
To prepare for making the ampdu_action callback
sleep, make mac80211 always process blockack
action frames from the skb queue. This gets rid
of the current special case for managed mode
interfaces as well.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 036f1bfa7b05..583b34686a26 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -1666,44 +1666,6 @@ void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, | |||
1666 | break; | 1666 | break; |
1667 | case IEEE80211_STYPE_ACTION: | 1667 | case IEEE80211_STYPE_ACTION: |
1668 | switch (mgmt->u.action.category) { | 1668 | switch (mgmt->u.action.category) { |
1669 | case WLAN_CATEGORY_BACK: { | ||
1670 | struct ieee80211_local *local = sdata->local; | ||
1671 | int len = skb->len; | ||
1672 | struct sta_info *sta; | ||
1673 | |||
1674 | rcu_read_lock(); | ||
1675 | sta = sta_info_get(sdata, mgmt->sa); | ||
1676 | if (!sta) { | ||
1677 | rcu_read_unlock(); | ||
1678 | break; | ||
1679 | } | ||
1680 | |||
1681 | local_bh_disable(); | ||
1682 | |||
1683 | switch (mgmt->u.action.u.addba_req.action_code) { | ||
1684 | case WLAN_ACTION_ADDBA_REQ: | ||
1685 | if (len < (IEEE80211_MIN_ACTION_SIZE + | ||
1686 | sizeof(mgmt->u.action.u.addba_req))) | ||
1687 | break; | ||
1688 | ieee80211_process_addba_request(local, sta, mgmt, len); | ||
1689 | break; | ||
1690 | case WLAN_ACTION_ADDBA_RESP: | ||
1691 | if (len < (IEEE80211_MIN_ACTION_SIZE + | ||
1692 | sizeof(mgmt->u.action.u.addba_resp))) | ||
1693 | break; | ||
1694 | ieee80211_process_addba_resp(local, sta, mgmt, len); | ||
1695 | break; | ||
1696 | case WLAN_ACTION_DELBA: | ||
1697 | if (len < (IEEE80211_MIN_ACTION_SIZE + | ||
1698 | sizeof(mgmt->u.action.u.delba))) | ||
1699 | break; | ||
1700 | ieee80211_process_delba(sdata, sta, mgmt, len); | ||
1701 | break; | ||
1702 | } | ||
1703 | local_bh_enable(); | ||
1704 | rcu_read_unlock(); | ||
1705 | break; | ||
1706 | } | ||
1707 | case WLAN_CATEGORY_SPECTRUM_MGMT: | 1669 | case WLAN_CATEGORY_SPECTRUM_MGMT: |
1708 | ieee80211_sta_process_chanswitch(sdata, | 1670 | ieee80211_sta_process_chanswitch(sdata, |
1709 | &mgmt->u.action.u.chan_switch.sw_elem, | 1671 | &mgmt->u.action.u.chan_switch.sw_elem, |