/* 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;
int load;
u32 tkip_iv32;
u16 tkip_iv16;
- u8 amsdu_frame;
} rx;
} u;
};
/* 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 */
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);