diff options
Diffstat (limited to 'net')
-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 2dcb942..b54ed5f 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -123,6 +123,7 @@ typedef enum { /* frame is destined to interface currently processed (incl. multicast frames) */ #define IEEE80211_TXRXD_RXRA_MATCH BIT(5) #define IEEE80211_TXRXD_TX_INJECTED BIT(6) +#define IEEE80211_TXRXD_RX_AMSDU BIT(7) struct ieee80211_txrx_data { struct sk_buff *skb; struct net_device *dev; @@ -155,7 +156,6 @@ struct ieee80211_txrx_data { int load; u32 tkip_iv32; u16 tkip_iv16; - u8 amsdu_frame; } rx; } u; }; diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 4525d73..0020e40 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) /* frame has qos control */ tid = qc[0] & QOS_CONTROL_TID_MASK; if (qc[0] & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT) - rx->u.rx.amsdu_frame = 1; + rx->flags |= IEEE80211_TXRXD_RX_AMSDU; else - rx->u.rx.amsdu_frame = 0; + rx->flags &= ~IEEE80211_TXRXD_RX_AMSDU; } else { if (unlikely((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT)) { /* Separate TID for management frames */ @@ -1221,7 +1221,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_txrx_data *rx) if (unlikely(!WLAN_FC_DATA_PRESENT(fc))) return TXRX_DROP; - if (!rx->u.rx.amsdu_frame) + if (!(rx->flags & IEEE80211_TXRXD_RX_AMSDU)) return TXRX_CONTINUE; err = ieee80211_data_to_8023(rx); |