diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/agg-rx.c | 24 | ||||
-rw-r--r-- | net/mac80211/ht.c | 3 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 4 |
4 files changed, 5 insertions, 28 deletions
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c index a978e666ed6f..cb9f80a94002 100644 --- a/net/mac80211/agg-rx.c +++ b/net/mac80211/agg-rx.c | |||
@@ -79,28 +79,9 @@ void __ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, | |||
79 | spin_unlock_bh(&sta->lock); | 79 | spin_unlock_bh(&sta->lock); |
80 | } | 80 | } |
81 | 81 | ||
82 | void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, | ||
83 | u16 initiator, u16 reason) | ||
84 | { | ||
85 | struct sta_info *sta; | ||
86 | |||
87 | rcu_read_lock(); | ||
88 | |||
89 | sta = sta_info_get(sdata, ra); | ||
90 | if (!sta) { | ||
91 | rcu_read_unlock(); | ||
92 | return; | ||
93 | } | ||
94 | |||
95 | __ieee80211_stop_rx_ba_session(sta, tid, initiator, reason); | ||
96 | |||
97 | rcu_read_unlock(); | ||
98 | } | ||
99 | |||
100 | /* | 82 | /* |
101 | * After accepting the AddBA Request we activated a timer, | 83 | * After accepting the AddBA Request we activated a timer, |
102 | * resetting it after each frame that arrives from the originator. | 84 | * resetting it after each frame that arrives from the originator. |
103 | * if this timer expires ieee80211_sta_stop_rx_ba_session will be executed. | ||
104 | */ | 85 | */ |
105 | static void sta_rx_agg_session_timer_expired(unsigned long data) | 86 | static void sta_rx_agg_session_timer_expired(unsigned long data) |
106 | { | 87 | { |
@@ -116,9 +97,8 @@ static void sta_rx_agg_session_timer_expired(unsigned long data) | |||
116 | #ifdef CONFIG_MAC80211_HT_DEBUG | 97 | #ifdef CONFIG_MAC80211_HT_DEBUG |
117 | printk(KERN_DEBUG "rx session timer expired on tid %d\n", (u16)*ptid); | 98 | printk(KERN_DEBUG "rx session timer expired on tid %d\n", (u16)*ptid); |
118 | #endif | 99 | #endif |
119 | ieee80211_sta_stop_rx_ba_session(sta->sdata, sta->sta.addr, | 100 | __ieee80211_stop_rx_ba_session(sta, *ptid, WLAN_BACK_RECIPIENT, |
120 | (u16)*ptid, WLAN_BACK_TIMER, | 101 | WLAN_REASON_QSTA_TIMEOUT); |
121 | WLAN_REASON_QSTA_TIMEOUT); | ||
122 | } | 102 | } |
123 | 103 | ||
124 | static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *da, u16 tid, | 104 | static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *da, u16 tid, |
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index bb677a73b7c9..2ab106a0a491 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c | |||
@@ -175,8 +175,7 @@ void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, | |||
175 | #endif /* CONFIG_MAC80211_HT_DEBUG */ | 175 | #endif /* CONFIG_MAC80211_HT_DEBUG */ |
176 | 176 | ||
177 | if (initiator == WLAN_BACK_INITIATOR) | 177 | if (initiator == WLAN_BACK_INITIATOR) |
178 | ieee80211_sta_stop_rx_ba_session(sdata, sta->sta.addr, tid, | 178 | __ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_INITIATOR, 0); |
179 | WLAN_BACK_INITIATOR, 0); | ||
180 | else { /* WLAN_BACK_RECIPIENT */ | 179 | else { /* WLAN_BACK_RECIPIENT */ |
181 | spin_lock_bh(&sta->lock); | 180 | spin_lock_bh(&sta->lock); |
182 | if (sta->ampdu_mlme.tid_state_tx[tid] & HT_ADDBA_REQUESTED_MSK) | 181 | if (sta->ampdu_mlme.tid_state_tx[tid] & HT_ADDBA_REQUESTED_MSK) |
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 741fb8bbc4a0..4e73660ebe99 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -1098,8 +1098,6 @@ int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata, | |||
1098 | enum ieee80211_smps_mode smps, const u8 *da, | 1098 | enum ieee80211_smps_mode smps, const u8 *da, |
1099 | const u8 *bssid); | 1099 | const u8 *bssid); |
1100 | 1100 | ||
1101 | void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da, | ||
1102 | u16 tid, u16 initiator, u16 reason); | ||
1103 | void __ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, | 1101 | void __ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid, |
1104 | u16 initiator, u16 reason); | 1102 | u16 initiator, u16 reason); |
1105 | void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta); | 1103 | void ieee80211_sta_tear_down_BA_sessions(struct sta_info *sta); |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index b83d4db6ca6a..c02e43b50ac3 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -739,8 +739,8 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx, | |||
739 | /* if this mpdu is fragmented - terminate rx aggregation session */ | 739 | /* if this mpdu is fragmented - terminate rx aggregation session */ |
740 | sc = le16_to_cpu(hdr->seq_ctrl); | 740 | sc = le16_to_cpu(hdr->seq_ctrl); |
741 | if (sc & IEEE80211_SCTL_FRAG) { | 741 | if (sc & IEEE80211_SCTL_FRAG) { |
742 | ieee80211_sta_stop_rx_ba_session(sta->sdata, sta->sta.addr, | 742 | __ieee80211_stop_rx_ba_session(sta, tid, WLAN_BACK_RECIPIENT, |
743 | tid, 0, WLAN_REASON_QSTA_REQUIRE_SETUP); | 743 | WLAN_REASON_QSTA_REQUIRE_SETUP); |
744 | dev_kfree_skb(skb); | 744 | dev_kfree_skb(skb); |
745 | return; | 745 | return; |
746 | } | 746 | } |