On Sat, 2012-03-31 at 13:32 -0700, Ashok Nagarajan wrote:
> @@ -1127,15 +1127,25 @@ u32 ieee80211_sta_get_rates(struct ieee80211_local
> *local,
> elems->ext_supp_rates_len; i++) {
> u8 rate = 0;
> int own_rate;
> + bool is_basic;
> if (i < elems->supp_rates_len)
> rate = elems->supp_rates[i];
> else if (elems->ext_supp_rates)
> rate = elems->ext_supp_rates
> [i - elems->supp_rates_len];
> own_rate = 5 * (rate & 0x7f);
> - for (j = 0; j < num_rates; j++)
> - if (bitrates[j].bitrate == own_rate)
> + is_basic = !!(rate & 0x80);
> +
> + if (is_basic && (rate & 0x7f) == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
> + continue;
> +
> + for (j = 0; j < num_rates; j++) {
> + if (bitrates[j].bitrate == own_rate) {
> supp_rates |= BIT(j);
> + if (basic_rates && is_basic)
> + *basic_rates |= BIT(j);
> + }
> + }
Seems it'd be worth skipping the entire logic if basic_rates is NULL?
johannes
_______________________________________________
Devel mailing list
[email protected]
http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel