Matthew Dillon wrote:
:http://opengrok.creo.hu/dragonfly/xref/src/sys/bus/usb/usb.c#374 : :More specifically: : : http://opengrok.creo.hu/dragonfly/xref/src/sys/sys/queue.h#428 : : *(head)->tqh_last = (elm); : :This expands to: : : *(&taskq->tasks)->tgh_last = task; : :There a NULL pointer is dereferenced somehow.It looks like memory corruption. USB may be issuing duplicate TAILQ operations on its taskq structure(s). Please try this patch. If it doesn't work then one or more task structure is probably being ripped out from under the usb code, probably by somthing related to uhci_timeout() as you previously reported. My guess is that uhci_detach() is ripping the structure out without waiting for the abort to finish but lets see if this patch has any effect first. -Matt
No, your patch doesn't work. Thanks anyway! Regards, Michael
