CALL for TEST [HOSTAP] run(4) ralink usb wireless

PseudoCylon moonlightakkiy at
Tue Jul 6 06:27:05 UTC 2010

>>>>>> From: Ganbold <ganbold at>
>>>>>> To: PseudoCylon <moonlightakkiy at>
>>>>>> Cc: freebsd-current at; Ganbold Tsagaankhuu <ganbold at>
>>>>>> Sent: Wed, June 16, 2010 6:33:47 AM
>>>>>> Subject: Re: CALL for TEST [HOSTAP] run(4) ralink usb wireless
>>>>>> AK-san,
>>>>> PseudoCylon wrote:
>>>>> Strange,  looks like this time works as expected, but sometimes it
>>>>> doesn't  work.
>>>>> In some cases it doesn't work and you can find complete tcpdump  output
>>>>> from very beginning to the modem hang:
>>>> Hello,
>>>> Are following true?
>>>> When manually load/reload hostapd, works
>>>> When loaded by rc.conf, doesn't work
>>>> If so, please try attached patch. (patch to if_run.c only) Or, here is a patched file.
>>>> When auto-loading, the driver is brought up and down a few times. It might be the cause.
>>> I will test it few more days and let you know.
>>> thanks,
>>> Ganbold
>> Hello,
>> How is the patch doing on your rspro? Is it working well?
>Sorry for late response. Due to business trip I tested couple of times
>only and it seems working relatively ok. 1-2 times ADSL modem hang, but
>seemed like after 3-4 hours.
>Tried couple of times again, but I couldn't reproduce it. I will try to
>reproduce it and let you know the results.
>thanks a lot,


I say every one has a job.

At least it's start up OK, right?

Can you try attached patch? (patch to if_run.c you currently using) Or, here is a patched file

I encountered similar problem about 5 days ago. It kind of hard to reproduce. A couple of things have to happen at the right (or wrong) time.

If the modem still hangs at the start up, please let me know. That means the last patch isn't working.


-- begin patch --

diff --git a/dev/usb/wlan/if_run.c b/dev/usb/wlan/if_run.c
index f302246..e5a2a4d 100644
--- a/dev/usb/wlan/if_run.c
+++ b/dev/usb/wlan/if_run.c
@@ -888,8 +888,7 @@ run_cmdq_cb(void *arg, int pending)
 /* call cmdq[].func locked */
-for(i = sc->cmdq_exec; sc->cmdq[i].func && pending;
-    i = sc->cmdq_exec, pending--){
+for(i = sc->cmdq_exec; sc->cmdq[i].func; i = sc->cmdq_exec){
 DPRINTFN(6, "cmdq_exec=%d pending=%d\n", i, pending);
 if(sc->cmdq_run == RUN_CMDQ_GO ||
     (sc->cmdq_key_set == RUN_CMDQ_GO &&

-- end patch --

More information about the freebsd-current mailing list