2003-03-22 09:25:52

by Dawson Engler

[permalink] [raw]
Subject: [CHECKER] deadlock in 2.5.62 drivers/usb/host/uhci-hcd.c?


Hi All,

there appears to be a potential locking cycle in 2.5.62's
drivers/usb/host/uhci-hcd.c
Though it looks like its in debugging code.

Confirmation/destruction appreciated.

<struct urb.lock (<local>:0)>-><struct uhci_hcd.complete_list_lock (<local>:0)> occurred 1 times
<struct uhci_hcd.complete_list_lock (<local>:0)>-><struct urb.lock (<local>:0)> occurred 1 times
Lock <struct urb.lock> is involved in <1> errors and <struct uhci_hcd.complete_list_lock> in 1

Callchain for
<struct urb.lock (<local>:0)>-><struct uhci_hcd.complete_list_lock (<local>:0)> =

depth = 2:
drivers/usb/host/uhci-hcd.c:uhci_transfer_result:1507
spin_lock_irqsave(&urb->lock, flags);

->drivers/usb/host/uhci-hcd.c:uhci_transfer_result:1507
->uhci_transfer_result:1568
->end=uhci_add_complete:138:spin_lock_irq

spin_lock_irqsave(&uhci->complete_list_lock, flags);


Callchain for
<struct uhci_hcd.complete_list_lock (<local>:0)>-><struct urb.lock (<local>:0)> =
depth = 2:
drivers/usb/host/uhci-debug.c:uhci_show_lists:395
->drivers/usb/host/uhci-debug.c:uhci_show_lists:395
->uhci_show_lists:407

spin_lock_irqsave(&uhci->complete_list_lock, flags);

->end=uhci_show_urbp:328:spin_lock
->drivers/usb/host/uhci-debug.c:uhci_show_urbp:328

spin_lock(&urbp->urb->lock);