commit 8f3458c033ee4261a5c8060007f15ad1e724d60b Author: Jiri Slaby Date: Sat Jul 28 22:13:47 2007 +0200 don't copy nonvalid rates diff --git a/ath.c b/ath.c index 28f4a7c..c455ca3 100644 --- a/ath.c +++ b/ath.c @@ -1738,18 +1738,23 @@ static inline short ath_ieee2mhz(short chan) static unsigned int ath_copy_rates(struct ieee80211_rate *rates, const struct ath5k_rate_table *rt, unsigned int max) { - unsigned int i; + unsigned int i, count; if (rt == NULL) return 0; - for (i = 0; i < rt->rate_count && max > 0; i++, rates++, max--) { + for (i = 0, count = 0; i < rt->rate_count && max > 0; i++) { + if (!rt->rates[i].valid) + continue; rates->rate = rt->rates[i].rate_kbps / 100; rates->val = rt->rates[i].rate_code; rates->flags = rt->rates[i].modulation; + rates++; + count++; + max--; } - return i; + return count; } static unsigned int ath_copy_channels(struct ath_hw *ah,