PR url:http://www.freebsd.org/cgi/<http://www.freebsd.org/cgi/query-pr.cgi?pr=174963> query-pr.cgi?pr=174963 <http://www.freebsd.org/cgi/query-pr.cgi?pr=174963>
thanks! 2013/1/4 Jov <zhao6...@gmail.com> > feedback: > the patch is fine for me,it works great! Thank you very much! > > do I need send a PR for this problem? > > 2013/1/1 Jov <zhao6...@gmail.com> > >> thanks very much,i will try the patch. >> >> jov >> 在 2013-1-1 下午1:19,"PseudoCylon" <moonlightak...@yahoo.ca>写道: >> >> > Message: 13 >>> > Date: Mon, 31 Dec 2012 18:11:04 +0800 >>> > From: Jov <zhao6...@gmail.com> >>> > To: freebsd-questions@freebsd.org >>> > Subject: buffalo wli-uc-gn wireless card sometimes unusable and emit >>> > "run0: wcid=xx out of range" >>> > Message-ID: >>> > < >>> cadyruxprp6os2mpk51yiwog-jkwtq+xpop48uzq+y15_our...@mail.gmail.com> >>> > Content-Type: text/plain; charset=ISO-8859-1 >>> > >>> > hi experts: >>> > I think the hardware is ok because I can use it in Win7. And in Freebsd >>> > 9.1,it works for sometime,but sometimes after system reboot or I plug >>> out & >>> > plug in the card it my unusable.on the console it emmit: >>> > "run0: wcid=xx out of range" where xx is 91,87 and etc. >>> >>> Please try attached patch. >>> >>> Reboot or re-plug-in shouldn't be a cause of the problem. Receiving an >>> association ID larger than device's max (64) is the problem. You must >>> be using a high-end AP. Reboot or re-plug-in initiate re-association >>> and just happen to receive a large association ID. >>> >>> >>> AK >>> >>> >>> --begin patch-- >>> >>> diff --git a/dev/usb/wlan/if_run.c b/dev/usb/wlan/if_run.c >>> index 3d2577f..ed11d97 100644 >>> --- a/dev/usb/wlan/if_run.c >>> +++ b/dev/usb/wlan/if_run.c >>> @@ -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, int isnew) >>> 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 *m, >>> struct ieee80211_node *ni) >>> 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; >>> >> > > > -- > jov > blog: http:amutu.com/blog > -- jov blog: http:amutu.com/blog _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"