mac80211: minstrel_ht: add a small optimization to minstrel_aggr_check
authorFelix Fietkau <nbd@openwrt.org>
Sat, 15 Nov 2014 23:27:55 +0000 (00:27 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 19 Nov 2014 18:31:07 +0000 (19:31 +0100)
Check the queue mapping earlier, skb->queue_mapping is more likely than
skb->data to still be in d-cache.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rc80211_minstrel_ht.c

index c50fd94d2aefc16113b36231ee309512f44922c5..62ff7cfb27236aa994401395e609b5767ae3878b 100644 (file)
@@ -690,6 +690,9 @@ minstrel_aggr_check(struct ieee80211_sta *pubsta, struct sk_buff *skb)
        struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
        u16 tid;
 
+       if (skb_get_queue_mapping(skb) == IEEE80211_AC_VO)
+               return;
+
        if (unlikely(!ieee80211_is_data_qos(hdr->frame_control)))
                return;
 
@@ -700,9 +703,6 @@ minstrel_aggr_check(struct ieee80211_sta *pubsta, struct sk_buff *skb)
        if (likely(sta->ampdu_mlme.tid_tx[tid]))
                return;
 
-       if (skb_get_queue_mapping(skb) == IEEE80211_AC_VO)
-               return;
-
        ieee80211_start_tx_ba_session(pubsta, tid, 5000);
 }