On Sat, 24 Jan 2015, Alexey Khoroshilov wrote:
oxu_qh_alloc() acquires oxu-mem_lock spinlock, finds free qh slot
and calls ehci_qtd_alloc() to initialize qh-dummy, but
ehci_qtd_alloc() acquires oxu-mem_lock as well.
That means an unavoidable deadlock in oxu_qh_alloc().
The patch fixes the
oxu_qh_alloc() acquires oxu-mem_lock spinlock, finds free qh slot
and calls ehci_qtd_alloc() to initialize qh-dummy, but
ehci_qtd_alloc() acquires oxu-mem_lock as well.
That means an unavoidable deadlock in oxu_qh_alloc().
The patch fixes the issue by introduction of unlocked version
of