mac80211/minstrel_ht: fix spacing between sample attempts
authorFelix Fietkau <nbd@openwrt.org>
Sun, 3 Mar 2013 11:49:52 +0000 (12:49 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 6 Mar 2013 15:35:54 +0000 (16:35 +0100)
A sample attempt should only count in mi->sample_tries if the sample
attempt wasn't skipped based on slower rate criteria.
This patch increases the sampling frequency for potentially desirable
rates and thus enables faster recovery from interference or collisions.

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

index 1b69924143d8461ea68eca184b9f97480bc31aa6..da4ec73f34150a7289aa20e75895842ac40d1c65 100644 (file)
@@ -640,7 +640,6 @@ minstrel_get_sample_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi)
        if (!mi->sample_tries)
                return -1;
 
-       mi->sample_tries--;
        mg = &mi->groups[mi->sample_group];
        sample_idx = sample_table[mg->column][mg->index];
        mr = &mg->rates[sample_idx];
@@ -677,6 +676,7 @@ minstrel_get_sample_rate(struct minstrel_priv *mp, struct minstrel_ht_sta *mi)
                if (mi->sample_slow++ > 2)
                        return -1;
        }
+       mi->sample_tries--;
 
        return sample_idx;
 }