Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Hang/reboot with -current and umidi on i386



I wrote:

> The problem is reading from the [umidi] device.  If I simply
>
> % cat < /dev/rmidi2 > /dev/null
>
> then the system immediately hangs [and] reboots.

Right, I got it to put me in ddb instead.  It's actually the assertion
at line 264 of /sys/dev/usb/umidi.c that fails:

        KASSERT(KERNEL_LOCKED_P());

and the backtrace is:

usbd_transfer() /* this contains the assertion above */
start_input_transfer()
umidi_open()
midiopen()
spec_open()
VOP_OPEN()
vn_open()
sys_open()
syscall

...which looks kind of weird.  Yes, umidi_open() causes a
start_input_transfer() to be invoked, but by way of open_in_jack().  Why
doesn't that show up in the backtrace?  Because it's a static function,
and has been inlined by the compiler?

Hm, guess I answered my own question, there.

Anyhoo - any good ideas as to how to continue?

-tih
-- 
"The market" is a bunch of 28-year-olds who don't know anything. --Paul Krugman


Home | Main Index | Thread Index | Old Index