urtw0: could not allocate USB transfers

Etienne Robillard erob at gthcfoundation.org
Thu Mar 3 13:07:53 UTC 2011


On 03/03/11 06:42 AM, Hans Petter Selasky wrote:
> On Thursday 03 March 2011 12:26:20 Etienne Robillard wrote:
>   
>> On 03/03/11 02:45 AM, Hans Petter Selasky wrote:
>>     
>>>>>> I forwarded this thread on -current.
>>>>>>
>>>>>> Please also find below a stack trace produced with option
>>>>>> KDB_UNATTENDED for the rt28700 driver (if_rt28700).
>>>>>>
>>>>>> On another side note, I have not being able to load
>>>>>> the runfw firmware module anymore after having updated
>>>>>> the src tree for 8.2-STABLE ?
>>>>>>
>>>>>> $ sudo kldload /boot/kernel/runfw.ko
>>>>>> kldload: can't load /boot/kernel/runfw.ko: Exec format error
>>>>>>             
>>>>> Here is your real error in dmesg:
>>>>>           
>>>>>> KLD runfw.ko: depends on firmware - not available or version mismatch
>>>>>> linker_load_file: Unsupported file type
>>>>>>             
>>>>> You need to kldload firmware.ko or make sure 'device firmware' is in
>>>>> your kernel config.
>>>>>           
>>>> Hi,
>>>>
>>>> Many thanks. This explains the change of behavior attempting to kldload
>>>> runfw.ko
>>>> without the firmware assist module. :)
>>>>
>>>> However I find strange that run(4) requires such a firmware to be
>>>> preloaded when the rt2870 driver doesn't require it!
>>>>
>>>> Cheers,
>>>>         
>>> Maybe that's due to a missing MODULE_DEPEND() line in the .c file of
>>> urtw0.
>>>
>>> --HPS
>>>       
>> Hi,
>>
>> Thanks for the input. I realize the urtw(4) and the pseudo rt2870 drivers
>> may be missing a MODULE_DEPEND macro but this issue is not as annoying
>> than the repeated page faults happening when the card is trying
>> to reassociate itself with a router.
>>     
> Hi,
>
> Could you re-point me at one of those page faults, like DDB backtrace?
>
> You are using 9-current?
>
> --HPS
>
>   
Hi,

Thanks for the feedback. It seems to affect unconditionally
at least run(4) and rt2870 which isn't in the src tree yet.  I
copy-paste below a full
dmesg output showing the requested backtrace.

Also on Linux, its possible to force modules using a external firmware
to not
being built as a module. Would it be possible to add a similar option to
/etc/src.conf to prevent
building modules requiring a external firmware such as run(4) when
building the
kernel ?

Waiting on "WCTRL" with the following non-sleepable locks held:
exclusive sleep mutex rt28700_com_loc (rt28700_com_loc) r = 0
(0xffffff8001466018) locked @ net80211/ieee80211_node.c:653
KDB: stack backtrace:
#0 0xffffffff804e0da0 at kdb_backtrace+0x60
#1 0xffffffff804effec at _witness_debugger+0x2c
#2 0xffffffff804f1672 at witness_warn+0x322
#3 0xffffffff8047a85d at _cv_wait+0x6d
#4 0xffffffff80400e73 at usbd_do_request_flags+0x4f3
#5 0xffffffff8102e0cb at rt2870_io_vendor_req+0x9b
#6 0xffffffff8102e232 at rt2870_io_mac_write_multi+0x52
#7 0xffffffff8102e2ac at rt2870_io_mac_write+0x1c
#8 0xffffffff81032f2d at rt2870_newassoc+0x12d
#9 0xffffffff805893d2 at sta_newstate+0x5a2
#10 0xffffffff81039a7d at rt2870_vap_newstate+0x4d
#11 0xffffffff805817a1 at ieee80211_newstate_cb+0x161
#12 0xffffffff804eb6b7 at taskqueue_run_locked+0xb7
#13 0xffffffff804eb7a0 at taskqueue_thread_loop+0x50
#14 0xffffffff804906d5 at fork_exit+0x115
#15 0xffffffff8064bc4e at fork_trampoline+0xe

Regards,

-- 
Etienne Robillard

Company: Green Tea Hackers Club
Occupation: Software Developer (and CEO)
E-mail:     erob at gthcfoundation.org
Work phone: 450-936-2123
Website (Company):  https://gthc.org/
Website (Blog):     https://gthc.org/blog/
PGP public key fingerprint:    F2A9 32EA 8E7C 460F 1728  A1A7 649C 7F17 A086 DDEC

During times of universal deceit, telling the truth becomes a revolutionary act. -- George Orwell 

If a free society cannot help the many who are poor, it cannot save the few who are rich. -- John F. Kennedy



More information about the freebsd-current mailing list