Ver Fonte

mac80211: move A-MSDU identifier to flags

This patch moves u8 amsdu_frame in ieee80211_txrx_data to the flags
section as IEEE80211_TXRXD_RX_AMSDU

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ron Rindjunsky há 17 anos atrás
pai
commit
64bd4b693f
2 ficheiros alterados com 4 adições e 4 exclusões
  1. 1 1
      net/mac80211/ieee80211_i.h
  2. 3 3
      net/mac80211/rx.c

+ 1 - 1
net/mac80211/ieee80211_i.h

@@ -123,6 +123,7 @@ typedef enum {
 /* frame is destined to interface currently processed (incl. multicast frames) */
 /* frame is destined to interface currently processed (incl. multicast frames) */
 #define IEEE80211_TXRXD_RXRA_MATCH		BIT(5)
 #define IEEE80211_TXRXD_RXRA_MATCH		BIT(5)
 #define IEEE80211_TXRXD_TX_INJECTED		BIT(6)
 #define IEEE80211_TXRXD_TX_INJECTED		BIT(6)
+#define IEEE80211_TXRXD_RX_AMSDU		BIT(7)
 struct ieee80211_txrx_data {
 struct ieee80211_txrx_data {
 	struct sk_buff *skb;
 	struct sk_buff *skb;
 	struct net_device *dev;
 	struct net_device *dev;
@@ -155,7 +156,6 @@ struct ieee80211_txrx_data {
 			int load;
 			int load;
 			u32 tkip_iv32;
 			u32 tkip_iv32;
 			u16 tkip_iv16;
 			u16 tkip_iv16;
-			u8  amsdu_frame;
 		} rx;
 		} rx;
 	} u;
 	} u;
 };
 };

+ 3 - 3
net/mac80211/rx.c

@@ -244,9 +244,9 @@ ieee80211_rx_h_parse_qos(struct ieee80211_txrx_data *rx)
 		/* frame has qos control */
 		/* frame has qos control */
 		tid = qc[0] & QOS_CONTROL_TID_MASK;
 		tid = qc[0] & QOS_CONTROL_TID_MASK;
 		if (qc[0] & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT)
 		if (qc[0] & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT)
-			rx->u.rx.amsdu_frame = 1;
+			rx->flags |= IEEE80211_TXRXD_RX_AMSDU;
 		else
 		else
-			rx->u.rx.amsdu_frame = 0;
+			rx->flags &= ~IEEE80211_TXRXD_RX_AMSDU;
 	} else {
 	} else {
 		if (unlikely((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT)) {
 		if (unlikely((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT)) {
 			/* Separate TID for management frames */
 			/* 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)))
 	if (unlikely(!WLAN_FC_DATA_PRESENT(fc)))
 		return TXRX_DROP;
 		return TXRX_DROP;
 
 
-	if (!rx->u.rx.amsdu_frame)
+	if (!(rx->flags & IEEE80211_TXRXD_RX_AMSDU))
 		return TXRX_CONTINUE;
 		return TXRX_CONTINUE;
 
 
 	err = ieee80211_data_to_8023(rx);
 	err = ieee80211_data_to_8023(rx);