mac80211: Don't use EAPOL frames for rate sampling
authorHelmut Schaa <helmut.schaa@googlemail.com>
Mon, 1 Aug 2011 09:32:53 +0000 (11:32 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 9 Aug 2011 19:52:02 +0000 (15:52 -0400)
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rc80211_minstrel_ht.c

index 66a1eeb..2158838 100644 (file)
@@ -608,7 +608,13 @@ minstrel_ht_get_rate(void *priv, struct ieee80211_sta *sta, void *priv_sta,
                return mac80211_minstrel.get_rate(priv, sta, &msp->legacy, txrc);
 
        info->flags |= mi->tx_flags;
-       sample_idx = minstrel_get_sample_rate(mp, mi);
+
+       /* Don't use EAPOL frames for sampling on non-mrr hw */
+       if (mp->hw->max_rates == 1 &&
+           txrc->skb->protocol == cpu_to_be16(ETH_P_PAE))
+               sample_idx = -1;
+       else
+               sample_idx = minstrel_get_sample_rate(mp, mi);
 
 #ifdef CONFIG_MAC80211_DEBUGFS
        /* use fixed index if set */