rt2x00: Fix header_length in rt2x00lib_txdone
authorRA-Jay Hung <Jay_Hung@ralinktech.com>
Sat, 13 Nov 2010 18:12:54 +0000 (19:12 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 17 Nov 2010 21:18:57 +0000 (16:18 -0500)
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>
drivers/net/wireless/rt2x00/rt2x00dev.c

index 3afa2a3..c879f9a 100644 (file)
@@ -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;
 
        /*
@@ -272,6 +271,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
         */
        if (test_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags))