On 07/17/12 11:25, Christoph Egger wrote: > On 07/17/12 02:56, matthew green wrote: > >>>> Module Name: src >>>> Committed By: mrg >>>> Date: Sun Jul 15 21:13:31 UTC 2012 >>>> >>>> Modified Files: >>>> src/sys/dev/usb: usb_subr.c usbdi.c usbdi.h usbdivar.h >>>> >>>> Log Message: >>>> commit my workaround for PR 46648 for now, as the more involved >>>> fix is not ready yet: >>>> >>>> move the clear endpoint stall async call into the task thread, >>>> to avoid trying to call kmem_alloc() from a softint thread. >>>> >>>> XXX ideally moving callbacks into the task thread (or perhaps >>>> a different high priority task thread) would be better than this >>>> workaround, once that method is working. >>> >>> >>> I get this at boot now: >>> >>> panic: lockdebug_lookup: uninitialized lock (lock=0xffffffff80d3fe28, >>> from=ffffffff806fd980) >>> fatal breakpoint trap in supervisor mode >>> trap type 1 code 0 rip ffffffff80212035 cs e030 rflags 246 cr2 0 ilevel >>> 8 rsp ffffa00019f0d910 >>> curlwp 0xffffa000013e2c00 pid 0 lid 26 lowest kstack 0xffffa00019f0a000 >>> Stopped in pid 0.26 (system) at netbsd:breakpoint+0x5: leave >>> breakpoint() at netbsd:breakpoint+0x5 >>> vpanic() at netbsd:vpanic+0x1f2 >>> printf_nolog() at netbsd:printf_nolog >>> lockdebug_wantlock() at netbsd:lockdebug_wantlock+0x18f >>> mutex_enter() at netbsd:mutex_enter+0x27b >>> usb_rem_task() at netbsd:usb_rem_task+0x2b >>> usbd_kill_pipe() at netbsd:usbd_kill_pipe+0x56 >>> usbd_new_device() at netbsd:usbd_new_device+0x41b >>> usb_doattach() at netbsd:usb_doattach+0xea >>> config_interrupts_thread() at netbsd:config_interrupts_thread+0x30 >>
Fixed in usb.c rev 1.131. Christoph