mac80211: make minstrel/pid RC use ieee80211_is_data(fc)
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Wed, 15 Jul 2009 00:14:06 +0000 (20:14 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 24 Jul 2009 19:05:16 +0000 (15:05 -0400)
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Derek Smithies <derek@indranet.co.nz>
Cc: Chittajit Mitra <Chittajit.Mitra@Atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rc80211_minstrel.c
net/mac80211/rc80211_pid_algo.c

index 37771abd8f5a5bcd85d9d94fa558f0e69649defb..5bdce0c951dd763e52148dcbeb9bf44976d4fd69 100644 (file)
@@ -75,12 +75,11 @@ use_low_rate(struct sk_buff *skb)
 {
        struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-       u16 fc;
+       __le16 fc;
 
-       fc = le16_to_cpu(hdr->frame_control);
+       fc = hdr->frame_control;
 
-       return ((info->flags & IEEE80211_TX_CTL_NO_ACK) ||
-               (fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA);
+       return ((info->flags & IEEE80211_TX_CTL_NO_ACK) || !ieee80211_is_data(fc));
 }
 
 
index a0bef767ceb5b5d97e43a877d7238c85fe884d16..549607703bd812070314260cdfe93803c9610375 100644 (file)
@@ -280,7 +280,7 @@ rate_control_pid_get_rate(void *priv, struct ieee80211_sta *sta,
        struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
        struct rc_pid_sta_info *spinfo = priv_sta;
        int rateidx;
-       u16 fc;
+       __le16 fc;
 
        if (txrc->rts)
                info->control.rates[0].count =
@@ -290,9 +290,8 @@ rate_control_pid_get_rate(void *priv, struct ieee80211_sta *sta,
                        txrc->hw->conf.short_frame_max_tx_count;
 
        /* Send management frames and NO_ACK data using lowest rate. */
-       fc = le16_to_cpu(hdr->frame_control);
-       if (!sta || !spinfo ||
-           (fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA ||
+       fc = hdr->frame_control;
+       if (!sta || !spinfo || !ieee80211_is_data(fc) ||
            info->flags & IEEE80211_TX_CTL_NO_ACK) {
                info->control.rates[0].idx = rate_lowest_index(sband, sta);
                if (info->flags & IEEE80211_TX_CTL_NO_ACK)