aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/rx.c6
2 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 2dcb9425fe8f..b54ed5fe4aa3 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -123,6 +123,7 @@ typedef enum {
123/* frame is destined to interface currently processed (incl. multicast frames) */ 123/* frame is destined to interface currently processed (incl. multicast frames) */
124#define IEEE80211_TXRXD_RXRA_MATCH BIT(5) 124#define IEEE80211_TXRXD_RXRA_MATCH BIT(5)
125#define IEEE80211_TXRXD_TX_INJECTED BIT(6) 125#define IEEE80211_TXRXD_TX_INJECTED BIT(6)
126#define IEEE80211_TXRXD_RX_AMSDU BIT(7)
126struct ieee80211_txrx_data { 127struct ieee80211_txrx_data {
127 struct sk_buff *skb; 128 struct sk_buff *skb;
128 struct net_device *dev; 129 struct net_device *dev;
@@ -155,7 +156,6 @@ struct ieee80211_txrx_data {
155 int load; 156 int load;
156 u32 tkip_iv32; 157 u32 tkip_iv32;
157 u16 tkip_iv16; 158 u16 tkip_iv16;
158 u8 amsdu_frame;
159 } rx; 159 } rx;
160 } u; 160 } u;
161}; 161};
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 4525d7332c88..0020e409e57d 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -244,9 +244,9 @@ ieee80211_rx_h_parse_qos(struct ieee80211_txrx_data *rx)
244 /* frame has qos control */ 244 /* frame has qos control */
245 tid = qc[0] & QOS_CONTROL_TID_MASK; 245 tid = qc[0] & QOS_CONTROL_TID_MASK;
246 if (qc[0] & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT) 246 if (qc[0] & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT)
247 rx->u.rx.amsdu_frame = 1; 247 rx->flags |= IEEE80211_TXRXD_RX_AMSDU;
248 else 248 else
249 rx->u.rx.amsdu_frame = 0; 249 rx->flags &= ~IEEE80211_TXRXD_RX_AMSDU;
250 } else { 250 } else {
251 if (unlikely((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT)) { 251 if (unlikely((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT)) {
252 /* Separate TID for management frames */ 252 /* Separate TID for management frames */
@@ -1221,7 +1221,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx)
1221 if (unlikely(!WLAN_FC_DATA_PRESENT(fc))) 1221 if (unlikely(!WLAN_FC_DATA_PRESENT(fc)))
1222 return TXRX_DROP; 1222 return TXRX_DROP;
1223 1223
1224 if (!rx->u.rx.amsdu_frame) 1224 if (!(rx->flags & IEEE80211_TXRXD_RX_AMSDU))
1225 return TXRX_CONTINUE; 1225 return TXRX_CONTINUE;
1226 1226
1227 err = ieee80211_data_to_8023(rx); 1227 err = ieee80211_data_to_8023(rx);