diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 6 |
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) | ||
126 | struct ieee80211_txrx_data { | 127 | struct 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); |