Jelajahi Sumber

rt2x00: Fix header_length in rt2x00lib_txdone

Put the assignment of header_length after pull out extra tx headroom

Signed-off-by: RA-Jay Hung <jay_hung@ralinktech.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
RA-Jay Hung 14 tahun lalu
induk
melakukan
f8eaec659f
1 mengubah file dengan 6 tambahan dan 2 penghapusan
  1. 6 2
      drivers/net/wireless/rt2x00/rt2x00dev.c

+ 6 - 2
drivers/net/wireless/rt2x00/rt2x00dev.c

@@ -250,10 +250,9 @@ void rt2x00lib_txdone(struct queue_entry *entry,
 	struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(entry->skb);
 	struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
 	enum data_queue_qid qid = skb_get_queue_mapping(entry->skb);
-	unsigned int header_length = ieee80211_get_hdrlen_from_skb(entry->skb);
+	unsigned int header_length, i;
 	u8 rate_idx, rate_flags, retry_rates;
 	u8 skbdesc_flags = skbdesc->flags;
-	unsigned int i;
 	bool success;
 
 	/*
@@ -271,6 +270,11 @@ void rt2x00lib_txdone(struct queue_entry *entry,
 	 */
 	skbdesc->flags &= ~SKBDESC_DESC_IN_SKB;
 
+	/*
+	 * Determine the length of 802.11 header.
+	 */
+	header_length = ieee80211_get_hdrlen_from_skb(entry->skb);
+
 	/*
 	 * Remove L2 padding which was added during
 	 */