--- /dev/null
+--- a/net/mac80211/rc80211_minstrel_ht.h
++++ b/net/mac80211/rc80211_minstrel_ht.h
+@@ -103,6 +103,7 @@ struct minstrel_ht_sta {
+ u8 sample_tries;
+ u8 sample_count;
+ u8 sample_slow;
++ u8 sample_retry;
+
+ /* current MCS group to be sampled */
+ u8 sample_group;
+--- a/net/mac80211/rc80211_minstrel_ht.c
++++ b/net/mac80211/rc80211_minstrel_ht.c
+@@ -261,6 +261,7 @@ minstrel_ht_update_stats(struct minstrel
+
+ /* try to sample up to half of the availble rates during each interval */
+ mi->sample_count *= 4;
++ mi->sample_retry = mi->sample_count;
+
+ cur_prob = 0;
+ cur_prob_tp = 0;
+@@ -572,6 +573,10 @@ minstrel_get_sample_rate(struct minstrel
+ return sample_idx;
+
+ next:
++ if (mi->sample_retry > 0) {
++ mi->sample_retry--;
++ mi->sample_tries++;
++ }
+ minstrel_next_sample_idx(mi);
+ return -1;
+ }