2009/8/7 Hans Petter Selasky <hsela...@c2i.net>:
>
> Could you edit:
> src/sys/dev/usb/usb_msctest.c
>
> And add a pause("TEST", 2*hz) after "if (do_eject)" and before the eject
> command ?

I changes usb_msctest.c to this:
...
    if (sid_type == 0x05) {
      /* CD-ROM */
      if (do_eject) {
        pause("TEST", 2*hz);
...

but it didn't work:


$ kldload u3g

(insert UMTS dongle)

dmesg:

Sleeping on "TEST" with the following non-sleepable locks held:
exclusive sleep mutex USB autoinstall (USB autoinstall) r = 0
(0xc7196a00) locked @ /usr/src/sys/dev/usb/usb_msctest.c:536
KDB: stack backtrace:
(backtrace)
--- trap 0, eip = 0, esp = 0xf3f46d70, ebp = 0 ---

(2 seconds sleep here)

usb_test_autoinstall:572: Eject CD command status: USB_ERR_NORMAL_COMPLETION
usb_alloc_device:1781: Found Huawei auto-install disk!
ugen0.3: <Novatel Wireless> at usbus0
ugen0.3: <Novatel Wireless> at usbus0 (disconnected)
uhub_reattach_port:440: could not allocate new device!


Next try:
--- /usr/src/sys/dev/usb/usb_msctest.c  (revision 196074)
+++ /usr/src/sys/dev/usb/usb_msctest.c  (working copy)
@@ -567,6 +567,7 @@
                                err = bbb_command_start(sc, DIR_OUT, 0,
                                    NULL, 0, 6, USB_MS_HZ);

+                               pause("TEST", 2*hz);
                                DPRINTFN(0, "Eject CD command "
                                    "status: %s\n", usbd_errstr(err));
                        }

Makes it work:

Sleeping on "TEST" with the following non-sleepable locks held:
exclusive sleep mutex USB autoinstall (USB autoinstall) r = 0
(0xc6bd1e00) locked @ /usr/src/sys/dev/usb/usb_msctest.c:536
KDB: stack backtrace:
db_trace_self_wrapper(c08fccdb,f3f46a2c,c067e395,c08eb082,218,...) at
db_trace_self_wrapper+0x26
kdb_backtrace(c08eb082,218,ffffffff,c0aea2f4,f3f46a64,...) at kdb_backtrace+0x29
_witness_debugger(c08ff11c,f3f46a78,4,1,0,...) at _witness_debugger+0x25
witness_warn(5,0,c08fa657,c08eb0a5,c5c82e4c,...) at witness_warn+0x1fd
_sleep(c09a9a64,0,0,c08eb0a5,7d0,...) at _sleep+0x5f
pause(c08eb0a5,7d0,6,400,6,...) at pause+0x47
usb_test_autoinstall(c680f400,0,1,100,2,...) at usb_test_autoinstall+0x213
u3g_test_huawei_autoinst(c680f400,f3f46bd0,f3f46bfc,40,2,...) at
u3g_test_huawei_autoinst+0x13d
usb_alloc_device(c5f81b80,c5c82cf0,c621b400,1,1,...) at usb_alloc_device+0xcb3
uhub_explore(c621b400,0,c08e8476,e3,c5c82dd4,...) at uhub_explore+0x519
usb_bus_explore(c5c82dd4,c5c82e4c,c08eb0ce,67,c08f8165,...) at
usb_bus_explore+0x97
usb_process(c5c82d74,f3f46d38,c08f4e84,33e,c5f95aa0,...) at usb_process+0xde
fork_exit(c059c650,c5c82d74,f3f46d38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xf3f46d70, ebp = 0 ---
usb_test_autoinstall:571: Eject CD command status: USB_ERR_NORMAL_COMPLETION
usb_alloc_device:1781: Found Huawei auto-install disk!
ugen0.3: <Novatel Wireless> at usbus0
ugen0.3: <Novatel Wireless> at usbus0 (disconnected)
uhub_reattach_port:440: could not allocate new device!
ugen0.3: <Novatel Wireless> at usbus0
u3g0: <Data Interface> on usbus0
u3g0: Found 2 ports.

Yipee :-)

Lucius
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to