12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- From: Felix Fietkau <[email protected]>
- Date: Fri, 14 Jun 2019 21:14:22 +0200
- Subject: [PATCH] mac80211: minstrel_ht: fix default max throughput rate
- indexes
- Use the first supported rate instead of 0 (which can be invalid)
- Signed-off-by: Felix Fietkau <[email protected]>
- ---
- --- a/net/mac80211/rc80211_minstrel_ht.c
- +++ b/net/mac80211/rc80211_minstrel_ht.c
- @@ -487,7 +487,7 @@ minstrel_ht_assign_best_tp_rates(struct
- tmp_prob = mi->groups[tmp_group].rates[tmp_idx].prob_ewma;
- tmp_mcs_tp = minstrel_ht_get_tp_avg(mi, tmp_group, tmp_idx, tmp_prob);
-
- - if (tmp_cck_tp > tmp_mcs_tp) {
- + if (tmp_cck_tp_rate && tmp_cck_tp > tmp_mcs_tp) {
- for(i = 0; i < MAX_THR_RATES; i++) {
- minstrel_ht_sort_best_tp_rates(mi, tmp_cck_tp_rate[i],
- tmp_mcs_tp_rate);
- @@ -559,11 +559,19 @@ minstrel_ht_update_stats(struct minstrel
- mi->sample_slow = 0;
- mi->sample_count = 0;
-
- - /* Initialize global rate indexes */
- - for(j = 0; j < MAX_THR_RATES; j++){
- - tmp_mcs_tp_rate[j] = 0;
- - tmp_cck_tp_rate[j] = 0;
- - }
- + memset(tmp_mcs_tp_rate, 0, sizeof(tmp_mcs_tp_rate));
- + memset(tmp_cck_tp_rate, 0, sizeof(tmp_cck_tp_rate));
- + if (mi->supported[MINSTREL_CCK_GROUP])
- + for (j = 0; j < ARRAY_SIZE(tmp_cck_tp_rate); j++)
- + tmp_cck_tp_rate[j] = MINSTREL_CCK_GROUP * MCS_GROUP_RATES;
- +
- + if (mi->supported[MINSTREL_VHT_GROUP_0])
- + index = MINSTREL_VHT_GROUP_0 * MCS_GROUP_RATES;
- + else
- + index = MINSTREL_HT_GROUP_0 * MCS_GROUP_RATES;
- +
- + for (j = 0; j < ARRAY_SIZE(tmp_mcs_tp_rate); j++)
- + tmp_mcs_tp_rate[j] = index;
-
- /* Find best rate sets within all MCS groups*/
- for (group = 0; group < ARRAY_SIZE(minstrel_mcs_groups); group++) {
|