Author: adrian
Date: Tue Aug 13 09:58:27 2013
New Revision: 254279
URL: http://svnweb.freebsd.org/changeset/base/254279

Log:
  ieee80211_rate2plcp() and ieee80211_rate2phytype() are both pre-11n
  routines and thus assert if one passes in a rate code with the
  high bit set.
  
  Since the high bit can indicate either IEEE80211_RATE_BASIC or
  IEEE80211_RATE_MCS, it's up to the caller to determine whether
  the rate is 11n or not, and either mask out the BASIC bit, or
  call a different function.
  
  (Yes, this does mean that net80211 should grow 11n-aware rate2phytype()
  and rate2plcp() functions..)
  
  This may need to happen for the other drivers - it's currently only
  done (now) for iwn(4) and bwi(4).
  
  PR:           kern/181100

Modified:
  head/sys/dev/bwi/bwimac.c

Modified: head/sys/dev/bwi/bwimac.c
==============================================================================
--- head/sys/dev/bwi/bwimac.c   Tue Aug 13 09:06:18 2013        (r254278)
+++ head/sys/dev/bwi/bwimac.c   Tue Aug 13 09:58:27 2013        (r254279)
@@ -1427,7 +1427,8 @@ bwi_mac_set_ackrates(struct bwi_mac *mac
                enum ieee80211_phytype modtype;
                uint16_t ofs;
 
-               modtype = ieee80211_rate2phytype(rt, rs->rs_rates[i]);
+               modtype = ieee80211_rate2phytype(rt,
+                   rs->rs_rates[i] & IEEE80211_RATE_VAL);
                switch (modtype) {
                case IEEE80211_T_DS:
                        ofs = 0x4c0;
@@ -1438,7 +1439,9 @@ bwi_mac_set_ackrates(struct bwi_mac *mac
                default:
                        panic("unsupported modtype %u\n", modtype);
                }
-               ofs += 2*(ieee80211_rate2plcp(rs->rs_rates[i], modtype) & 0xf);
+               ofs += 2*(ieee80211_rate2plcp(
+                   rs->rs_rates[i] & IEEE80211_RATE_VAL,
+                   modtype) & 0xf);
 
                MOBJ_WRITE_2(mac, BWI_COMM_MOBJ, ofs + 0x20,
                             MOBJ_READ_2(mac, BWI_COMM_MOBJ, ofs));
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to