From owner-freebsd-questions@FreeBSD.ORG Tue Jan 1 05:41:29 2013 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C29C1447 for ; Tue, 1 Jan 2013 05:41:29 +0000 (UTC) (envelope-from zhao6014@gmail.com) Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by mx1.freebsd.org (Postfix) with ESMTP id 4BBCB8FC12 for ; Tue, 1 Jan 2013 05:41:28 +0000 (UTC) Received: by mail-wi0-f176.google.com with SMTP id hm6so9684235wib.15 for ; Mon, 31 Dec 2012 21:41:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Z75tp2rNPwP3Ut/ESb+OHMSHx+GQvB34KlQvM3z2DJI=; b=HE9FmEoF1bD6ZSAI+31RIix1ct+0aWqhewbUppTC4jbY7MjvqDoCaA6lGKBF+OABa0 4PqVfFkBdkdt4jQOKm2ap7cjCwWYXD1qHmd+9/jqhIRR4Gud1H+bQbG59PaRhAAU76SB wJvNJUJKf8dJY3HDSx+GTVy5Y1loVwKfNG/AionTWtI80aWbYqw15WjjtVOUllrrTEGh rW8WfEi94Y8B2puMOzumxiAf6LwyODL9Z17JLTywbnTgEljXz1Cjjjj6FG87C30LBk70 lMwDXlfMfNkzORsZhH71PSiCdWdc8Qm2GzcD06HUjCQVa7Rlwq73Fn6JMUPwYqlwb+xh 9xsg== MIME-Version: 1.0 Received: by 10.180.73.202 with SMTP id n10mr65425120wiv.17.1357018881770; Mon, 31 Dec 2012 21:41:21 -0800 (PST) Received: by 10.194.47.71 with HTTP; Mon, 31 Dec 2012 21:41:21 -0800 (PST) Received: by 10.194.47.71 with HTTP; Mon, 31 Dec 2012 21:41:21 -0800 (PST) In-Reply-To: References: Date: Tue, 1 Jan 2013 13:41:21 +0800 Message-ID: Subject: Re: buffalo wli-uc-gn wireless card sometimes unusable and emit "run0: wcid=xx out of range" From: Jov To: PseudoCylon Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-questions@freebsd.org X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jan 2013 05:41:29 -0000 thanks very much=A3=ACi will try the patch. jov =D4=DA 2013-1-1 =CF=C2=CE=E71:19=A3=AC"PseudoCylon" =D0=B4=B5=C0=A3=BA > > Message: 13 > > Date: Mon, 31 Dec 2012 18:11:04 +0800 > > From: Jov > > To: freebsd-questions@freebsd.org > > Subject: buffalo wli-uc-gn wireless card sometimes unusable and emit > > "run0: wcid=3Dxx out of range" > > Message-ID: > > < > CADyrUxPrP6OS2mpK51yiwoG-jKwTQ+XpOP48uZQ+Y15_oUr9Sg@mail.gmail.com> > > Content-Type: text/plain; charset=3DISO-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=3Dxx 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 =3D 0; /* NB: update WCID0 for group keys */ > base =3D RT2860_SKEY(RUN_VAP(vap)->rvp_id, k->wk_keyix); > } else { > - wcid =3D RUN_AID2WCID(associd); > + wcid =3D (vap->iv_opmode =3D=3D IEEE80211_M_STA) ? > + 1 : RUN_AID2WCID(associd); > base =3D RT2860_PKEY(wcid); > } > > @@ -2374,9 +2375,12 @@ run_newassoc(struct ieee80211_node *ni, int isnew) > struct run_softc *sc =3D ic->ic_ifp->if_softc; > uint8_t rate; > uint8_t ridx; > - uint8_t wcid =3D RUN_AID2WCID(ni->ni_associd); > + uint8_t wcid; > int i, j; > > + wcid =3D (vap->iv_opmode =3D=3D IEEE80211_M_STA) ? > + 1 : RUN_AID2WCID(ni->ni_associd); > + > if (wcid > RT2870_WCID_MAX) { > device_printf(sc->sc_dev, "wcid=3D%d out of range\n", wci= d); > return; > @@ -3044,8 +3048,12 @@ run_tx(struct run_softc *sc, struct mbuf *m, > struct ieee80211_node *ni) > txd->flags =3D qflags; > txwi =3D (struct rt2860_txwi *)(txd + 1); > txwi->xflags =3D xflags; > - txwi->wcid =3D IEEE80211_IS_MULTICAST(wh->i_addr1) ? > - 0 : RUN_AID2WCID(ni->ni_associd); > + if (IEEE80211_IS_MULTICAST(wh->i_addr1)) > + txwi->wcid =3D 0; > + else { > + txwi->wcid =3D (vap->iv_opmode =3D=3D IEEE80211_M_STA) ? > + 1 : RUN_AID2WCID(ni->ni_associd); > + } > /* clear leftover garbage bits */ > txwi->flags =3D 0; > txwi->txop =3D 0; >