]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/mac80211/rate.c
Fix IO address issue.
[linux-2.6-omap-h63xx.git] / net / mac80211 / rate.c
index 841df93807fc86fa0178cf282f4d9ce11b1c7317..0388c090dfe9bb5c1d3437c1137a2abed2ca17bf 100644 (file)
@@ -176,20 +176,24 @@ void rate_control_get_rate(struct net_device *dev,
        rcu_read_lock();
        sta = sta_info_get(local, hdr->addr1);
 
-       memset(sel, 0, sizeof(struct rate_selection));
+       sel->rate_idx = -1;
+       sel->nonerp_idx = -1;
+       sel->probe_idx = -1;
 
        ref->ops->get_rate(ref->priv, dev, sband, skb, sel);
 
+       BUG_ON(sel->rate_idx < 0);
+
        /* Select a non-ERP backup rate. */
-       if (!sel->nonerp) {
+       if (sel->nonerp_idx < 0) {
                for (i = 0; i < sband->n_bitrates; i++) {
                        struct ieee80211_rate *rate = &sband->bitrates[i];
-                       if (sel->rate->bitrate < rate->bitrate)
+                       if (sband->bitrates[sel->rate_idx].bitrate < rate->bitrate)
                                break;
 
                        if (rate_supported(sta, sband->band, i) &&
                            !(rate->flags & IEEE80211_RATE_ERP_G))
-                               sel->nonerp = rate;
+                               sel->nonerp_idx = i;
                }
        }