From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Mosberger Date: Fri, 18 Apr 2003 02:02:07 +0000 Subject: [Linux-ia64] USB deadlock in v2.5.67 Message-Id: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org So my 2.5.67 kernel was humming along nicely when I got the idea to unplug a USB keyboard. Instant deadlock. The backtrace shows this: Call Trace: [] hcd_free_dev+0x140/0x240 [] usb_release_dev+0x100/0x140 [] device_release+0x80/0xa0 [] kobject_cleanup+0x100/0x120 [] urb_unlink+0x110/0x1a0 [] usb_hcd_giveback_urb+0x30/0x1a0 [] dl_done_list+0x230/0x2a0 [] ohci_irq+0x290/0x340 [] usb_hcd_irq+0x80/0x100 [] handle_IRQ_event+0xa0/0x120 [] do_IRQ+0x360/0x460 [] ia64_handle_irq+0x70/0x140 [] ia64_leave_kernel+0x0/0x240 translates into line 1249 in hcd.c, where it does: spin_lock_irqsave (&hcd_data_lock, flags); The deadlock is pretty obvious: the same lock has already been acquired urb_unlink(), 4 levels up in the call-chain. Anybody have a fix for this? --david