Wireless usb + wep = no usbd_do_request

From: PseudoCylon <moonlightakkiy_at_yahoo.ca>
Date: Tue, 3 Nov 2009 03:11:47 -0800 (PST)
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.)

Any ideas, patches, or walkaround?


More info
#uname -a
FreeBSD  9.0-CURRENT FreeBSD 9.0-CURRENT #1 r198150M: Fri Oct 16 22:44:08 UTC 2009 amd64

ddb trace output 20+ minutes after "ifconfig wepkey" (using if_run)
Tracing command ifconfig pid 1586 tid 100159 td 0xffffff000b3d3a80
sched_switch() at sched_switch+0x180
mi_switch() at mi_switch+0x21d
sleepq_switch() at sleepq_switch+0x123
sleepq_wait() at sleepq_wait+0x4d
_sleep() at _sleep+0x357
taskqueue_drain() at taskqueue_drain+0xc2
ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x3e
ieee80211_ioctl() at ieee80211_ioctl+0x162
ifioctl() at ifioctl+0xde4
kern_ioctl() at kern_ioctl+0xc5
ioctl() at ioctl+0xfd
syscall() at syscall+0x1af
Xfast_syscall() at Xfast_syscall+0xe1

Also, sleep mutex became spin mutex. I get a panic
panic: mtx_lock of spin mutex(null)
It works fine before ifconfig wepkey.


      __________________________________________________________________
Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now
http://ca.toolbar.yahoo.com.
Received on Tue Nov 03 2009 - 10:38:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:57 UTC