Date: Wed, 4 Nov 2009 13:40:26 +0100 From: Paul B Mahol <onemda@gmail.com> To: PseudoCylon <moonlightakkiy@yahoo.ca> Cc: freebsd-current@freebsd.org Subject: Re: Wireless usb + wep = no usbd_do_request Message-ID: <3a142e750911040440h294da813m4b392da9c1b6e692@mail.gmail.com> In-Reply-To: <950696.93705.qm@web51806.mail.re2.yahoo.com> References: <143477.23789.qm@web51804.mail.re2.yahoo.com> <3a142e750911030408t25dd59b0rcda6eccd8c24c0c9@mail.gmail.com> <950696.93705.qm@web51806.mail.re2.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/4/09, PseudoCylon <moonlightakkiy@yahoo.ca> wrote: > ----- Original Message ---- > >> From: Paul B Mahol <onemda@gmail.com> >> To: PseudoCylon <moonlightakkiy@yahoo.ca> >> Cc: freebsd-current@freebsd.org >> Sent: Tue, November 3, 2009 5:08:47 AM >> Subject: Re: Wireless usb + wep = no usbd_do_request >> >> On 11/3/09, PseudoCylon wrote: >> > Hi, >> > >> > I'm porting a wireless usb driver (if_run) to freebsd current, and I got >> > stuck. Once I "ifconfig wlan0 wepkey 1:0x... weptxkey 1" I cannot call >> > usbd_do_request() any more. Even ifconfig didn't exit. Chipset supports >> > h/w >> > en/decryption, so cannot write keys on chip. (It works without >> > encryption, >> > by the way.) >> > >> > So, I tried the same thing on another device, linksys wusb54gc with >> > if_rum. >> > It worked fine, but about 3 to 4 min later. (Just left it alone.) It >> > started >> > giving error >> > rum0: could not multi read MAC register: USB_ERR_TIMEOUT and >> > rum0: device timeout >> > when ifconfig wlan0 down, >> > rum0: could not multi write MAC register: USB_ERR_TIMEOUT >> > which means failed on usbd_do_request() (This could be totally different >> > issue.) >> >> I get this one multiple times after card got detached but vap was not >> manually destroyed. >> Recently I did not used if_rum more that 5 min I think(maybe in AP >> mode when I was testing hidden ssid ...) >> >> > Any ideas, patches, or walkaround? >> >> Make sure how locks are handled between net80211, usb and driver itself. > > Thanks for the reply. > > I think that's just simple lock problem, too. Just I don't know what it is. > I tried > IEEE80211_LOCK > IEEE80211_NODE_LOCK > IEEE80211_NODE_ITERATE_LOCK > but I cannot lock or unlock them. (I can lock IF_LOCK.) I just get "panic: > mtx_lock of spin mutex(null)" For example, IEEE80211_LOCK is sleep mutex, > and I can use it in newstate() no problem, but I some how it becomes spin > mutex in key_set(). Once I find what is over writing lock type, I can make > it work. Wish me a luck. Look other freebsd usb drivers for example when un/lock is required, also you need to have you own driver lock - and you need to really know when to use it.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3a142e750911040440h294da813m4b392da9c1b6e692>