Author: hselasky
Date: Mon Jan 21 07:16:29 2013
New Revision: 245729
URL: http://svnweb.freebsd.org/changeset/base/245729

Log:
  MFC r245047:
  Fix for "run0: wcid=xx out of range" error message.
  
  PR:           usb/174963
  Submitted by: PseudoCylon <moonlightak...@yahoo.ca>

Modified:
  stable/9/sys/dev/usb/wlan/if_run.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/usb/wlan/if_run.c
==============================================================================
--- stable/9/sys/dev/usb/wlan/if_run.c  Mon Jan 21 07:14:06 2013        
(r245728)
+++ stable/9/sys/dev/usb/wlan/if_run.c  Mon Jan 21 07:16:29 2013        
(r245729)
@@ -2019,7 +2019,8 @@ run_key_set_cb(void *arg)
                wcid = 0;       /* NB: update WCID0 for group keys */
                base = RT2860_SKEY(RUN_VAP(vap)->rvp_id, k->wk_keyix);
        } else {
-               wcid = RUN_AID2WCID(associd);
+               wcid = (vap->iv_opmode == IEEE80211_M_STA) ?
+                   1 : RUN_AID2WCID(associd);
                base = RT2860_PKEY(wcid);
        }
 
@@ -2374,9 +2375,12 @@ run_newassoc(struct ieee80211_node *ni, 
        struct run_softc *sc = ic->ic_ifp->if_softc;
        uint8_t rate;
        uint8_t ridx;
-       uint8_t wcid = RUN_AID2WCID(ni->ni_associd);
+       uint8_t wcid;
        int i, j;
 
+       wcid = (vap->iv_opmode == IEEE80211_M_STA) ?
+           1 : RUN_AID2WCID(ni->ni_associd);
+
        if (wcid > RT2870_WCID_MAX) {
                device_printf(sc->sc_dev, "wcid=%d out of range\n", wcid);
                return;
@@ -3044,8 +3048,12 @@ run_tx(struct run_softc *sc, struct mbuf
        txd->flags = qflags;
        txwi = (struct rt2860_txwi *)(txd + 1);
        txwi->xflags = xflags;
-       txwi->wcid = IEEE80211_IS_MULTICAST(wh->i_addr1) ?
-           0 : RUN_AID2WCID(ni->ni_associd);
+       if (IEEE80211_IS_MULTICAST(wh->i_addr1)) {
+               txwi->wcid = 0;
+       } else {
+               txwi->wcid = (vap->iv_opmode == IEEE80211_M_STA) ?
+                   1 : RUN_AID2WCID(ni->ni_associd);
+       }
        /* clear leftover garbage bits */
        txwi->flags = 0;
        txwi->txop = 0;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to